我有下一个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 |
+---------+-------+
我该怎么办?
答案 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顺序分组(*);