[英]Select all rows but show the max value from the table in a new column
我正在做一个选择,我想要突出显示最近日期的所有行。 这不是每组,而是整个返回的表。
我仍然想要检索表中的所有行,无论它们是否是最大值,但我想确保我们可以找到表的最新值子集。 优选地,新列具有标志或其中的实际值。
我该怎么做?
当前表(示例)
+----+-------------+
| Id | Date |
+----+-------------+
| 1 | 1 Jan 2012 |
| 2 | 3 Jan 2012 |
| 3 | 2 Jan 2012 |
| 3 | 5 Jan 2012 |
| 4 | 5 Jan 2012 |
+----+-------------+
理想的输出
+----+-------------+---------+
| Id | Date | Latest? |
+----+-------------+---------+
| 1 | 1 Jan 2012 | no |
| 2 | 3 Jan 2012 | no |
| 3 | 2 Jan 2012 | no |
| 3 | 5 Jan 2012 | yes |
| 4 | 5 Jan 2012 | yes |
+----+-------------+---------+
您可以使用MAX
加入表格:
SELECT my_table.*, CASE WHEN date = max_date THEN 'yes' ELSE 'no' END AS latest
FROM my_table
JOIN (SELECT MAX(date) AS max_date FROM my_table) t -- Note it's only one row, no need for a join condition
试试这样吧
SELECT ID,DATE,
CASE WHEN DATE = (SELECT MAX(DATE) FROM TABLE1) Then 'YES' ELSE 'No' END LATEST
FROM TABLE1 T1
试试这个,我已将最大日期分开,因此它只获得一次最大日期并在主查询中使用它。
DECLARE @MaxDate As DateTime
SELECT @MaxDate = MAX(DATE) FROM TABLE1
SELECT ID,
DATE,
CASE WHEN DATE = @MaxDate Then 'yes' ELSE 'no' END Lates
FROM TABLE1
ORDER BY ID, DATE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.