2011-05-23 3 views
2

У меня есть таблица, как указано ниже, имя таблицы - tag.SQL-запрос для подсчета каждой записи файла в таблице

id fileid 
== ====== 
1 1 
2 2 
3 2 
4 2 
5 3 
6 3 
7 3 

Мне нужно найти количество вхождений каждого fileId. Таким образом, выход должен быть примерно таким:

fileId count 
====== ===== 
    1  1 
    2  3 
    3  3 

Может ли кто-нибудь помочь мне написать этот запрос MySQL?

+1

Это может быть не самый лучший вопрос в мире, но почему downvote? Я вижу проблему и конкретный вопрос с данными вокруг нее, чтобы помочь. SO может быть немного суровым иногда ... – Bojangles

ответ

2

попробовать

SELECT fieldId, COUNT(Id) AS count FROM tag GROUP BY fieldId 
+2

Почему downvote ??? – diEcho

+1

-1 Это не точный ответ – developer

+0

@damodar какая ошибка в ответе ?? буду ли я описывать меня? – diEcho

4

Это было бы:

select fileId, count(*) 
from tag 
group by fileId 
order by fileId 

group by будет объединять строки с тем же значением fileId и count(*) будет считать эти строки для каждого из них.

+0

Thanx, я решил это, вот мой запрос SELECT DISTINCT 'fileId' AS id, Count (id) AS count FROM' Tag' GROUP BY 'fileId' ORDER BY count DESC LIMIT 0, 30 – Paba

+0

«Порядок по» является избыточным, не так ли? –

+1

@ Kumaripaba: Почему 'DISTINCT'? Почему «DESC LIMIT 0, 30'? И почему бы не принять совершенно хороший ответ? – Johnsyweb

Смежные вопросы