簡體   English   中英

如何在SQL中得到不同的結果?

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

附加說明:

看來,您的表格尚未標准化 也就是說,您將nameid一起存儲在此表中。 因此,您可能同時擁有這兩行:

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM