Запрос SQL: получить идентификатор тега и количество вхождений тегов - PullRequest
1 голос
/ 18 сентября 2009

Я думаю, ответ на мой вопрос довольно прост, но я просто не могу понять это в данный момент. Я экспериментировал с DISTINCT () и COUNT (), но безуспешно, хотя я знаю, что я делал это как-то раньше. Итак:

У меня есть три таблицы: article, tag и article_tag. Последний - это просто два столбца с article_id и tag_id, создающими уникальный ключ.

Теперь я хочу один оператор SELECT, который выдаст мне tag_id и подсчет того, сколько раз он появится в таблице article_tag. Что-то вроде

| tag_id  | count   |
+---------+---------+
| 1       | 14      |
| 2       | 3       |
| 3       | 34      |
+---------+---------+

из запроса типа:

SELECT tag_id, COUNT(something) AS count 
  FROM article_tag

Может кто-нибудь сказать мне, как я мог получить этот результат? Я думаю, мне следует прекратить кодирование, когда оно приближается к 0:00 ...

Ответы [ 3 ]

4 голосов
/ 18 сентября 2009
  SELECT tag_id, 
         COUNT(article_id) AS article_count 
    FROM article_tags 
GROUP BY tag_id
3 голосов
/ 18 сентября 2009
select tag_id, count(*) from article_tag group by tag_id order by tag_id; 

Вы также можете играть с order by. Чтобы увидеть, какие теги имеют наибольшее количество ссылок:

  select tag_id, count(*) from article_tag group by tag_id order by count(*); 
3 голосов
/ 18 сентября 2009

Попробуйте: выберите tag_id, count (article_id) из группы article_tag по tag_id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...