如何借助 group by 子句在一个查询中获取两个不同表的不同行数
How to get different row counts of two different tables in one query with help of group by clause
我有一个 Parent table(订单)和一个 child table(商品)。一个用户一天可以下多个订单,一个订单可以有多个Item。
我的table结构像,
我想得到这样的结果,比如特定用户订购了多少订单和商品。
我需要这样的结果
谢谢。
您必须对用户、订单和商品 table 使用 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
尝试使用 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
我有一个 Parent table(订单)和一个 child table(商品)。一个用户一天可以下多个订单,一个订单可以有多个Item。
我的table结构像,
我想得到这样的结果,比如特定用户订购了多少订单和商品。
我需要这样的结果
谢谢。
您必须对用户、订单和商品 table 使用 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
尝试使用 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