簡體   English   中英

mySQL - 在兩列中選擇唯一值

[英]mySQL - select unique values in two columns

我真的無法通過sql找到一個簡單甚至任何解決方案來從DB(mySQL)獲取唯一數據。

我將給出一個樣本(簡化):

表t

fruit  | color  | weight
-----------------------
apple  | red    | 34
kiwi   | red    | 23
banana | yellow | 100
kiwi   | black  | 3567
apple  | yellow | 23
banana | green  | 2345
pear   | green  | 1900

現在我想要輸出 - 類似於不同(蘋果)和不同(顏色)的東西和按重量排序desc:

kiwi   | black  | 3567
banana | green  | 2345
apple  | red    | 34
  • 梨| 綠色//不行,因為綠色已被“使用”
  • 香蕉| 黃色//不行,因為香蕉已被“使用”

因此,我不僅需要按水果分組,還需要顏色(所有獨特的)。

任何建議或解決方案? 謝謝!

我不清楚為什么香蕉|綠色更喜歡香蕉|黃色(改變RIGHT JOININNER JOIN以獲得更美味的水果)所以我希望我已經明白你要做的是:

SELECT t1.fruit, t1.color, t1.weight
FROM
t AS t1
RIGHT JOIN
(
SELECT fruit, color, weight
FROM t
GROUP BY 
color
) AS t2
ON
t1.fruit = t2.fruit AND t1.color = t2.color
GROUP BY fruit
ORDER BY weight DESC;

另請注意MySQL如何處理GROUP BY中的隱藏列

SELECT fruit, color, weight 
FROM t
GROUP BY fruit, color
HAVING COUNT(*) = 1
ORDER BY weight DESC

暫無
暫無

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

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