[英]Multiple Count and Group in MySQL
我有一個帶有2個不同表的數據庫1是用於具有以下結構的訂單詳細信息:
--------------
|order_id |
--------------
|1234 |
--------------
|1235 |
--------------
|1236 |
--------------
|1237 |
--------------
另一個表用於記錄訂單更新次數
---------------------------------------------------
|update_id | order_id | updated_on |
---------------------------------------------------
|1 | 1234 | 2015-10-27 17:57:28
---------------------------------------------------
|2 | 1234 | 2015-10-28 17:57:28
---------------------------------------------------
|3 | 1235 | 2015-12-27 17:57:28
---------------------------------------------------
|4 | 1236 | 2015-12-28 17:57:28
---------------------------------------------------
|5 | 1236 | 2015-12-28 17:57:28
---------------------------------------------------
現在,我希望它為每種訂單ID顯示2種count()類型,即一種表示訂單更新的總次數,第二種是今天日期中的訂單更新的次數(2015-10-28)
----------------------------------------------
|order_id | updated | updated_today |
----------------------------------------------
|1234 | 2 | 1
----------------------------------------------
|1235 | 1 | 0
----------------------------------------------
|1236 | 2 | 2
----------------------------------------------
|1237 | 0 | 0
----------------------------------------------
在這方面的幫助將不勝感激
按訂單ID分組,然后進行簡單計數以及更新日期=今天的總和。
select o.order_id,
count(ou.order_id) updated,
sum(date(updated_date) <=> date(now())) updated_today
from orders o
left join order_update ou on (o.order_id = ou.order_id)
group by o.order_id;
在此嘗試:
您只需要更改表名和字段名
SELECT
o.order_id,
COUNT(*),
SUM(IF( CURRENT_DATE() = DATE(l.updated_on),1,0) ) AS updated_today
FROM order o
LEFT JOIN loggin l ON l.order_id = o.order_id
GROUP BY o.order_id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.