我想根據這個標準找到最暢銷的產品。
最小訂單 = 5
- 產品 A = 100 個訂單 - 最后一個訂單 = 2021 年 12 月 29 日
- 產品 B = 6 個訂單 - 最后一個訂單 = 2022 年 1 月 1 日
- 產品 C = 3 個訂單 - 最后一個訂單 = 2022 年 1 月 3 日
產品 B 必須先展示。
產品 C 將不會顯示,因為它的訂單少于 5 個。
這是我的資料庫結構和我嘗試過的
http://sqlfiddle.com/#!9/04e2a92/23
uj5u.com熱心網友回復:
這是獲取最小訂單數為 5 的所有產品的查詢,按降序排序。
SELECT p_name,
tmp.total_orders,
tmp.last_purchased
FROM products P
INNER JOIN (
SELECT product_id,
COUNT(*) AS total_orders,
MAX(created_at) AS last_purchased
FROM order_items
GROUP BY product_id
HAVING total_orders >= 5
) AS tmp ON tmp.product_id = P.id
ORDER BY last_purchased DESC
uj5u.com熱心網友回復:
首先是獲取products已售出超過 5 件的商品。然后join通過結果表order_items獲取商品的最后售出日期。
select p.p_name, max(t1.created_at), b.ct from order_items t1
inner join
(select product_id, count(1) as ct from order_items group by product_id having count(1) >= 5) as b
on b.product_id = t1.product_id
inner join products p on p.id = t1.product_id
group by t1.product_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403161.html
標籤:
上一篇:SQL按每小時不同日期排序
