[英]how to get distinct result in sql?
我試圖得到下表的不同結果
id | name | created_on
1 | xyz | 2015-07-04 09:45:14
1 | xyz | 2015-07-04 10:40:59
2 | abc | 2015-07-05 10:40:59
我想要最新的created_on的唯一 ID表示以下結果
1 | xyz | 2015-07-04 10:40:59
2 | abc | 2015-07-05 10:40:59
如何通過sql查詢獲得以上結果?
嘗試這個:
Select id, name, max(created_on) as created_on from table group by id
嘗試:
select id,max(name), max(created_on) from table_name group by id
附加說明:
看來,您的表格尚未標准化 。 也就是說,您將name
和id
一起存儲在此表中。 因此,您可能同時擁有這兩行:
id | name | created_on
1 | a | 12-12-12
1 | b | 11-11-11
如果在模型中在邏輯上不可能實現該狀態,則應通過將此表拆分為兩個單獨的表來重新設計數據庫; 一個用於保持id-name
關系,另一個用於保持id-created_on
關系:
table_1 (id,name)
table_2 (id,created_on)
現在,要獲取每個id的最后created_on:
select id,max(created_on) from table_2
如果要在查詢中保留name
:
select t1.id, t1.name, t2.created_on from table_1 as t1 inner join
(select id, max(created_on) as created_on from table_2) as t2
on t1.id=t2.id
假設id / name始終是一對:
select id, name, max(created_on)
from table
group by id, name;
將兩者都包含在group by
比較安全。 當表中的列id
並非唯一時,我也會發現它具有誤導性。
您可以像這樣使用關鍵字DISTINCT
SELECT DISTINCT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.