繁体   English   中英

SQL选择特定的DISTINCT行

[英]SQL selecting specific DISTINCT rows

我试图提取一些数据,因为“事件”列是不同的,但是我特别希望仅从“值”列中包含最高编号的行,我认为使用DISTINCT和GROUP BY有点误解,但是我的SQL知识是目前有限,任何帮助都会很棒

在此处输入图片说明

试试看:

SELECT [EVENT]
  ,MAX([Value]) 
FROM [MyTable] 
GROUP BY [EVENT]

最简单的方法是使用子查询或row_number()

select event, value
from (select t.*, row_number() over (partition by event order by value desc) as seqnum
      from mytable t
     ) t
where seqnum = 1;

要么:

select t.*
from mytable t
where t.value = (select max(t2.value) from mytable t2 where t2.event = t.event);

您应谨慎命名列。 在某些数据库中, eventvalue可能是保留字。

SELECT [EVENT], MAX([Value]) FROM [My Table] GROUP BY [EVENT]怎么样?

您在正确的轨道上。
select event, max(value) from test group by event

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM