[英]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.