![](/img/trans.png)
[英]MYSQL query select from table and order by date and other field. prioritize other field
[英]Merge Table Rows Data in Mysql query based on date and one other field. Table have more than 2M rows
這是數據示例表
ID MC BC TIME AB AT
1 4 10 2016-12-05 09:02:00 5 8
2 4 20 2016-12-15 09:03:00 2 3
3 4 10 2016-12-15 09:02:00 1 4
4 4 20 2016-12-25 09:02:00 3 6
5 4 05 2016-12-05 09:02:00 4 2
6 4 05 2016-12-08 09:02:00 6 2
7 4 10 2016-12-11 09:02:00 7 6
8 4 10 2016-12-05 09:02:00 9 8
9 4 10 2016-12-15 09:02:00 9 8
10 4 10 2016-12-15 09:05:00 10 20
11 5 10 2016-12-15 09:05:00 10 20
12 5 10 2016-12-15 09:05:00 10 20
13 5 10 2016-12-15 09:05:00 10 20
如果我查詢“ MC” = 4和“ TIME”的位置(如2016-12%
那么我想根據“ TIME”列中的日期合並“ AB”和“ AT”列中的數據,並且每個“ BC”具有單獨的合並日期。
就像第15天的樣本輸出中有兩個“ BC”(10,20),它們有兩個不同的行。
我想要這樣的輸出
ID MC BC TIME AB AT
1 4 10 2016-12-05 14 16
2 4 10 2016-12-11 7 6
3 4 10 2016-12-15 20 32
4 4 20 2016-12-15 2 3
5 4 20 2016-12-25 3 6
6 4 05 2016-12-05 4 2
7 4 05 2016-12-08 6 2
該表在本月有200萬行,如示例表中所示。
SELECT MC,
BC,
DATE(`TIME`) AS 'Day'
SUM(AB) AS AB,
SUM(AT) AS AT
FROM tbl
WHERE `TIME` >= '2016-12-01`
AND `TIME` < '2016-12-01` + INTERVAL 1 MONTH
AND MC = 4
GROUP BY MC, BC, DATE(`TIME`);
這將很有用:
INDEX(MC, `TIME`)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.