[英]How to get different row counts of two different tables in one query with help of group by clause
我有一張父表(訂單)和一張子表(項目)。 一個用戶可以在一天內訂購多個訂單,一個訂單可能有多個商品。
我的表結構像
我想得到一個特定用戶訂購了多少個訂單和商品的結果。
我需要像這樣的結果
謝謝。
您必須對用戶,訂單和項目表使用INNER JOIN 。 還可以使用GROUP BY子句對每個日期和順序進行分組。
SELECT user_id,
count(o.id_order),
count(item.id_item)
FROM USER
INNER JOIN
`ORDER` o ON user.id=o.id_order
INNER JOIN item i ON o.id_order=o.id_order
GROUP BY o.Date, o.id_order
嘗試對count columns
使用distinct count
的count columns
,並且grouping by user_id
就足夠了:
select o.user_id as "User Id",
count(distinct o.id_order) as "Count(Order)",
count(distinct i.id_item) as "Count(Item)",
max("date") as "Date"
from orders o
join item i on o.id_order = i.id_order
group by user_id;
User Id Count(Order) Count(Item) Date
------- ------------ ----------- ----------
1 3 7 22.11.2018
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.