[英]Distinct query in sql server 2005
我有一个表,其中包含三个字段ID,Name,aDate。 我希望结果使用不同的名称,并且希望日期生效。 我正在使用查询
Select distinct(Name),adate from table_name.
但是我得到了错误的结果。我认为sql在这两个字段的组合上应用不同。 我所做的是帮助我的。 我想要具有各自日期字段的不同名称值。
如果每个名称仅需要一个日期,则必须指定哪个日期:
例如:
SELECT Name, Max(aDate)
FROM table_name
GROUP BY Name
由于此语句使用GROUP BY Name
因此每个Name仅返回一行。 由于它使用aDate的聚合(在我的示例中是MAX()
函数),因此它将返回您想要的适当日期。
通常,您应该尝试避免使用DISTINCT关键字。 这很少是正确的方法。
如果您只想在表中使用不同名称的列表,则可以使用
SELECT DISTINCT Name
FROM table_name
这将返回相同的结果。
SELECT Name
FROM table_name
GROUP BY Name
Distinct不适用于一个字段,它适用于查询的整个字段行。 因此,您要问的没有任何意义。
如果您的表中有这样的行
|ID|Name|Date|
|1|John|2011-4-1|
|2|John|2011-4-2|
|3|John|2011-4-2|
那么当您致电“ Select distinct name, date
请注明您希望在日期栏中看到的内容?
您需要决定哪个日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.