SQL语句按最大条目排序

时间:2011-05-19 22:57:29

标签: php sql statements

我有一张名为“报告”的表格

看起来像:

user_id | report_post 
   1            2    
   2            2  
   3            2  
   4           10 

现在我想首先列出前三个条目,因为在此表中报告的帖子ID“2”是3次...我想按最大条目对它们进行排序。

希望你们明白......非常感谢

----编辑------ 我的输出必须看起来像这样

report_post | entries
    2             3    
   10             1

7 个答案:

答案 0 :(得分:2)

Select report_post, Count(1) As Entries
From   reports
Group By Report_Post
Order By Count(1) DESC

答案 1 :(得分:1)

使用子查询。这应该可以解决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;

答案 2 :(得分:1)

SELECT *
FROM (
    SELECT user_id, report_post, COUNT(*) AS cnt
    FROM reports
    GROUP BY report_post
) c
ORDER BY cnt DESC

答案 3 :(得分:1)

通过编辑,这可以满足您的要求:

select report_post, count(*) entries
from reports
group by report_post
order by entries desc

答案 4 :(得分:1)

SELECT report_post as report_post, count(report_post) as entries 
FROM `reports` group by `report_post`

单一查询。

答案 5 :(得分:0)

SELECT * FROM reports ORDER BY entries DESC

答案 6 :(得分:0)

我有点不确定你究竟在问什么。您是否只是想让它返回report_post id等于“2”的条目?

如果是这种情况,这应该有效:

SELECT * FROM reports WHERE report_post=2;

很抱歉,如果我误解了你的问题。