在SQL group by语句中,显示匹配的行字段之一

时间:2018-07-19 16:18:18

标签: mysql sql sql-server group-by

我正在尝试对表中的条目进行计数,以识别感兴趣的记录。

我将结果分组:

select code, count(1)
from data
group by code
order by count(1) desc

因此,如果我有几行使用相同的代码,则查询将报告该代码,其中包含该代码存在的次数。

code | Count
123      3
321      2
231      1

从表中

code | title
123    firstcode
123    first code
123    The first code
321    The second code
321    The second code
231    The third code

我想通过为每个代码的一行显示一个(任何(可能是第一个)(可能是第一个))标题字段来表示代码的含义。

我该怎么做?

我觉得我需要做类似的事情:

select code, 
 ( select top 1 title from data d2 where d2.code = d.code
 ) title,
count(1)
from data d
group by ( select top 1 title from data d2 where d2.code = d.code
 ), code
order by count(1) desc

1 个答案:

答案 0 :(得分:6)

在进行聚合时,我经常包括min()max()

select code, count(1), min(title), max(title)
from data
group by code
order by count(1) desc