簡體   English   中英

總計mysql組

[英]COUNT total of group by mysql

此mysql查詢提供了按天和小時分組的我的產品(總數和total_staff)的銷售數量。 我想要每種產品的totaltotal_staff的總和(不按任何內容分組,按ID期望)。 我可以在同一查詢中執行此操作嗎?

SELECT p.name, p.color, DATE(date_create) as jour,HOUR(date_create) AS h,
SUM(CASE WHEN s.staff=0 THEN 1 ELSE 0 END) as total,
SUM(CASE WHEN s.staff=1 THEN 1 ELSE 0 END) as total_staff
FROM manifsSubCategories msc
LEFT JOIN products_subCategories psc ON msc.id=psc.manifSubCategory_id
LEFT JOIN sales s ON psc.product_id=s.product_id
LEFT JOIN products p ON psc.product_id=p.id
LEFT JOIN manifsCategories ON manifCategory_id=manifsCategories.id
WHERE manifCategory_id=1 AND s.category_id=1 GROUP BY jour,h ORDER BY p.id DESC 

只需省略其他列:

SELECT p.name,
    SUM(CASE WHEN s.staff=0 THEN 1 ELSE 0 END) as total,
    SUM(CASE WHEN s.staff=1 THEN 1 ELSE 0 END) as total_staff
FROM manifsSubCategories msc
LEFT JOIN products_subCategories psc ON msc.id=psc.manifSubCategory_id
LEFT JOIN sales s ON psc.product_id=s.product_id 
LEFT JOIN products p ON psc.product_id=p.id
LEFT JOIN manifsCategories ON manifCategory_id=manifsCategories.id
WHERE manifCategory_id=1 AND s.category_id=1
GROUP BY p.name
ORDER BY p.id DESC

順便說一句-您的WHERE子句是錯誤的。 您正在按LEFT JOIN的表進行過濾,由於NULL比較,這將使您的LEFT JOIN變為inner join LEFT JOIN
左聯接的右表上的條件應僅放在ON子句中。

暫無
暫無

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

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