在组后的mysql中维护sql命令

时间:2011-01-29 11:53:03

标签: sql mysql

我有下一个sql

select site_id,count from tags where match (tag) against ('statistici' in boolean mode) ORDER BY count DESC;

+---------+-------+
| site_id | count |
+---------+-------+
|       9 |  1300 |
|      13 |  1200 |
|       9 |  1100 |
|      13 |  1000 |
|       9 |   900 |
|      13 |   800 |
|      13 |   800 |
+---------+-------+

我需要的是获得不同的site_id。 但是,当我使用group by语句时,不会保留按计数的顺序

select site_id,count from tags where match (tag) against ('statistici' in boolean mode) GROUP by site_id ORDER BY count DESC;

+---------+-------+
| site_id | count |
+---------+-------+
|      13 |  1000 |
|       9 |   900 |
+---------+-------+

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您按ORDER BY count DESC排序,结果的排序顺序为最高排名。

如果您首先选择最低计数,请更改为ORDER BY count ACS

编辑:根据您的评论,或许这更像您要实现的目标:

select  site_id
,       max(count) as TopCount
from    tags 
where   match (tag) against ('statistici' in boolean mode) 
group by 
        site_id 
order by
        TopCount DESC

这将选择每个站点的最高计数,并将最高计数放在第一位。

答案 1 :(得分:0)

按site_Id顺序分组(*);