sql >> Databáze >  >> RDS >> Mysql

Výběrový dotaz MYSQL pomocí počtu (*)

Nyní, když jste dále rozvedli, čeho vlastně chcete dosáhnout, je vidět, že problém je mnohem složitější. Ve skutečnosti chcete všechny kombinace subscriber_id a tag_id a poté spočítejte počet skutečných položek v produktu spojené tabulky. fuj. Takže tady je SQL:

SELECT combinations.tag_id,
       combinations.subscriber_id,

-- correlated subquery to count the actual hits by tag/subscriber when joining
-- the two tables using content_id

       (SELECT count(*)
        FROM content_hits AS h
        JOIN content_tag AS t ON h.content_id = t.content_id
        WHERE h.subscriber_id = combinations.subscriber_id
        AND t.tag_id = combinations.tag_id) as cnt

-- Create all combinations of tag/subscribers first, before counting anything
-- This will be necessary to have "zero-counts" for any combination of
-- tag/subscriber

FROM (
  SELECT DISTINCT tag_id, subscriber_id
  FROM content_tag
  CROSS JOIN content_hits
) AS combinations


  1. Chyba příkazu sql:sloupec .. neexistuje

  2. Jak mohu určit hodnotu řetězce datového typu Oracle podle jeho kódu?

  3. Laravel Eloquent vs query builder – Proč používat eloquent ke snížení výkonu

  4. jediný dotaz pro tisk všech řádků, jejichž počet je větší než 10