Порядок операторов SQL по максимуму записей - PullRequest
0 голосов
/ 20 мая 2011

У меня есть таблица с именем "reports"

, она выглядит следующим образом:

user_id | report_post 
   1            2    
   2            2  
   3            2  
   4           10 

Теперь я хочу сначала перечислить первые три записи, потому что идентификатор сообщения "2"3 раза в этой таблице ... я хочу отсортировать их по максимальному количеству записей.

Надеюсь, вы, ребята, понимаете ... большое спасибо

---- edit ----- мой вывод должен выглядеть следующим образом

report_post | entries
    2             3    
   10             1

Ответы [ 7 ]

2 голосов
/ 20 мая 2011
Select report_post, Count(1) As Entries
From   reports
Group By Report_Post
Order By Count(1) DESC
1 голос
/ 20 мая 2011
SELECT report_post as report_post, count(report_post) as entries 
FROM `reports` group by `report_post`

Один запрос.

1 голос
/ 20 мая 2011

С вашим редактированием, это делает то, что вы просите:

select report_post, count(*) entries
from reports
group by report_post
order by entries desc
1 голос
/ 20 мая 2011
SELECT *
FROM (
    SELECT user_id, report_post, COUNT(*) AS cnt
    FROM reports
    GROUP BY report_post
) c
ORDER BY cnt DESC
1 голос
/ 20 мая 2011

Используйте подзапрос. Это должно сделать трюк в MySQL:

select * from reports 
order by (
   select count(*) from reports as reports_a
   where reports_a.report_post=reports.report_post
) desc;

(ответ выше - ваш вопрос до того, как вы отредактировали его, чтобы изменить его значение)

Для отредактированного вопроса это тривиальный пример группы:

select report_post,count(*) as entries
from reports
group by report_post
order by entries desc;
0 голосов
/ 20 мая 2011

Я немного не уверен, что именно вы спрашиваете.Вы просто пытаетесь заставить его возвращать записи, где идентификатор report_post равен "2"?

Если это так, это должно работать:

SELECT * FROM reports WHERE report_post=2;

Извините, если я неправильно понялваш вопрос.

0 голосов
/ 20 мая 2011
SELECT * FROM reports ORDER BY entries DESC
...