簡體   English   中英

選擇具有唯一值的行數

[英]Select count of rows with unique values

我有一張桌子,里面有我們賣的所有物品。 訂單中可能有多個商品。

我想找到最受歡迎的項目顏色組合,其中訂單僅包含1個項目。 我想知道是否可以在一個MySQL語句中找到它(可能使用嵌套的Selects)。 到目前為止,我已經嘗試了幾件事但沒有成功。

ProductName | Color | OrderNum | 
--------------------------------
productA    | black | 1
productA    | black | 1
productA    | black | 2
productA    | black | 3
productA    | black | 4
productA    | black | 4
productA    | black | 5

所以“

SELECT COUNT(ProductName), ProductName WHERE ~~COUNT(OrderNum)=1~~ GROUP BY ProductName, Color

會顯示:

COUNT(ProductName) | ProductName | Color
      3            | ProductA    | black

實際上我有很多產品和50多種顏色。

我嘗試過的:

SELECT COUNT(ProductName), ProductName,Color, 
       (SELECT COUNT(OrderNum) FROM Items GROUP BY OrderNum) AS itemcount 
FROM Items WHERE 1 
GROUP BY ProductName,Color HAVING itemcount = 1

SELECT COUNT( ProductName ) , ProductName, Color
FROM Items
WHERE (SELECT COUNT( OrderNum ) AS itemcounts
       FROM Items GROUP BY OrderNum
) =1
GROUP BY ProductName

- “子查詢返回超過1行”

謝謝你的幫助。

查詢:

SQLFIDDLEExample

SELECT
COUNT(*) as count, i.ProductName, i.Color
FROM ITems i
WHERE 1 = (SELECT COUNT( OrderNum ) AS itemcounts
           FROM Items 
           WHERE OrderNum = i.OrderNum
           )
GROUP BY ProductName, Color

結果:

| COUNT | PRODUCTNAME | COLOR |
-------------------------------
|     3 |    productA | black |

嘗試這個:

SELECT ProductName, color, COUNT(ProductName) 
FROM (SELECT ProductName, color, orderNum FROM Items 
      GROUP BY ProductName, orderNum HAVING COUNT(orderNum)=1) AS A

暫無
暫無

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

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