簡體   English   中英

在除一列外的所有列上選擇不同的行

[英]Selecting distinct rows on all but one column

我需要獲取一個表的不同值,該表具有一個自動遞增的id字段。 我需要ID來標識,但是除了ID之外,其他所有值都相同時,我不在乎哪個ID。

我提出了以下建議,這似乎可行。 有更好的方法嗎?

SELECT id, date_f, date_t, num_n, num_d, mn, is 
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is

另一個問題是,如果多次執行查詢,是否總是返回相同的ID?

編輯:

示例數據庫:

id date_f date_t num_n num_d mn is
1   10      10      10  10   10 10
2   10      10      10  10   10 10
3   10      10      10  10   10 10

我想都是一個行的列的存儲了這些。 我不在乎id是1、2還是3,只要下次我執行查詢時該ID是相同的(不添加/刪除它們之間的任何行)即可。 到目前為止,建議使用min(id)兩個答案似乎是個好主意。

如果您根本沒有在結果集中使用id,那么上面的答案就可以了。 如果出於任何目的在結果集中至少需要一個ID,則應稍作更改:

SELECT min(id), date_f, date_t, num_n, num_d, mn, is 
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is

它將返回與唯一集匹配的第一個ID(或者,如果需要最后一個,則使用(Max)-盡管隨着向表中添加數據,該ID可能會隨着時間而改變。

您所擁有的基本上是正確的-我要補充一點,如果您想要ID(身份),則需要添加一個匯總,例如-

SELECT min(id), date_f, date_t, num_n, num_d, mn, is 
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is

這樣可以確保您每次都獲得第一個(相同的)(除非將其刪除)

SELECT DISTINCT date_f,date_t,num_n,num_d,mn為FROM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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