亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL/MySQL-選擇不同/唯一但返回所有列?

SQL/MySQL-選擇不同/唯一但返回所有列?

不負相思意 2019-07-11 15:37:51
SQL/MySQL-選擇不同/唯一但返回所有列?SELECT DISTINCT field1, field2, field3, ......   FROM table我正在嘗試完成以下SQL語句,但我希望它返回所有列,這可能嗎?類似于:SELECT DISTINCT field1, * from table
查看完整描述

3 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

從您問題的措辭來看,我了解到您希望為給定字段選擇不同的值,并將所有其他列值列在同一行中。大多數dbms都不允許這樣做。DISTINCT也不GROUP BY,因為結果尚未確定。

把它想成這樣:如果你field1發生不止一次,它的值是多少?field2將被列出(假設您的值與field1在兩行中,但有兩個不同的值。field2在這兩行中)。

但是,您可以使用聚合函數(對您想要顯示的每個字段進行解釋),并使用GROUP BY而不是DISTINCT:

SELECT field1, MAX(field2), COUNT(field3), SUM(field4), .... FROM table GROUP BY field1



查看完整回答
反對 回復 2019-07-11
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

如果我正確地理解了你的問題,這和我剛才遇到的問題很相似。您希望能夠將DISTION的可用性限制在指定的字段上,而不是將其應用于所有數據。

如果您使用GROUP BY而沒有聚合函數,那么任何時候您分組的字段都將是您的不同字段。

如果您進行查詢:

SELECT * from table GROUP BY field1;

它將顯示基于字段1的單個實例的所有結果。

例如,如果您有一個具有名稱、地址和城市的表。一個人有多個被記錄的地址,但是你只想要一個人的一個地址,你可以查詢如下:

SELECT * FROM persons GROUP BY name;

結果將只出現一個該名稱的實例及其地址,而另一個實例將從結果表中省略。警告:如果您的文件具有原子值,如FirstName,則要同時按兩者對LASTNAME進行分組。

SELECT * FROM persons GROUP BY lastName, firstName;

因為如果兩個人的姓氏相同,而您只按LASTNAME分組,結果中將省略其中一個人。你需要考慮這些事情。希望這能幫上忙。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 1030 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號