簡體   English   中英

如何借助group by子句在一個查詢中獲得兩個不同表的不同行數

[英]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 countcount 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

Rextester演示

暫無
暫無

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

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