繁体   English   中英

初学者SQL-获取DISTINCT条目(按列)

[英]Beginner SQL - Get DISTINCT entries (by column)

我有一个名为OnlineSpeakers的表,该表记录(时间)人(SpeakerName)在网上讲话的时间。 它每5分钟记录一次当前正在讲话的人,因此,例如Bob,

2014-06-06 07:05, Room 205, Bob
2014-06-06 07:00, Room 205, Bob
2014-06-06 06:55, Room 205, Bob
...
2014-06-06 06:00, Room 205, Bob

该表是这样的:

在线演讲者

  • ID
  • 时间
  • 房间名称
  • 演讲者姓名

我想提取一个已注册的最新发言人的名单。 因此,对于鲍勃来说,这是“鲍勃,2014-06-06 06:00”,这标志着鲍勃首次登台演讲。

我知道如何为鲍勃买到这个:

SELECT TOP (1) Time, SpeakerName
FROM     OnlineSpeakers
WHERE  (SpeakerName = 'Bob')
ORDER BY Time ASC

但是我不知道如何为OnlineSpeakers中的每个发言人获取它

SELECT DISTINCT SpeakerName
FROM     OnlineSpeakers

我想要一个这样的清单:

2014-06-06 06:00, Room 205, Bob
2014-06-06 05:00, Room 205, Tim
2014-06-06 03:55, Room 205, George
2014-06-06 06:00, Room 205, Martin
...

我尝试用“ SpeakerName IN”替换“ SpeakerName ='Bob'”“,然后替换为唯一名称列表,但随后它仅给出了该表的完整列表,每个扬声器都有多个时间。

任何帮助表示赞赏。

您需要分组依据运算符。

select SpeakerName, Min(Time) from OnlineSpeakers
Group by SpeakerName

这将把您的所有内容都按演讲者的姓名分组,当您执行此操作时,您将需要找到一种方法来决定要显示的时间范围中的哪一个(这称为汇总函数)。 但是,您已经告诉我们您想要第一个,因此可以使用Min函数。

给我所有的OnlineSpeakers ,由分组SpeakerName ,包括与各组的第一次。

暂无
暂无

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

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