簡體   English   中英

SQL - 按產品類別和按客戶 ID 分組的銷售額

[英]SQL - Sales by product category and Group by client ID

我有 2 個表,一個銷售表和一個產品表。 我正在嘗試查詢這些表以獲取每個 client_id 的產品類別總銷售額。

異常結果:

| client_id    | hardware sales | software sales |
|  C109        | 300            | 0              | 150 * 2 and 0 * 0
|  C145        | 160            | 240            | 160 * 1 and 10 * 24
|  C160        | 500            | 0              | 500 * 1 and 0 * 0

銷售.sql

| date      | order_id | client_id | product_id| product_price | quantity |
| 2020-01-02| A456     | C109      | 2546      | 150           | 2        |
| 2020-01-04| A457     | C145      | 2546      | 160           | 1        |
| 2020-01-04| A458     | C160      | 3000      | 500           | 1        |
| 2020-01-06| A459     | C145      | 8712      | 10            | 24       |

產品.sql

| product_id| product_type   | product_name   |
|  2546     | hardware       | keyboard       |
|  3000     | hardware       | screen         |
|  4445     | software       | video games    |
|  8712     | software       | malwarebytes   |

我正在嘗試但很難完成的事情:

SELECT client_id FROM `sales` 
WHERE EXISTS (SELECT product_id      
FROM `products` 
WHERE 'product_id' = '4445')
GROUP BY client_id

你想要一個join和聚合:

select s.client_id,
       sum(case when product_type = 'hardware' then s.product_price * s.quantity else 0 end) hardware_sales,
       sum(case when product_type = 'software' then s.product_price * s.quantity else 0 end) software_sales
from sales s join
     products p
     on s.product_id = p.product_id
group by s.client_id ;

暫無
暫無

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

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