我有一个mysql数据库,我想发一个SQL请求,但我没有成功。我想要这个:
date | groupe1 | groupe2 | groupe3 | TOTAL
2018-02-15 | 1.3 | 4 | 0 | 5.3
2018-02-14 | 0 | 6.1 | 0 | 6.1
2018-02-13 | 0 | 5.4 | 4.9 | 10.3
但根据我的要求,我有这个:
date | groupe1 | groupe2 | groupe3 | TOTAL
2018-02-15 | 0 | 4 | 0 | 4.0
2018-02-15 | 1.3 | 0 | 0 | 1.3
2018-02-14 | 0 | 6.1 | 0 | 6.1
2018-02-13 | 0 | 5.4 | 0 | 5.4
2018-02-13 | 0 | 0 | 3.9 | 3.9
2018-02-13 | 0 | 0 | 1 | 1
这是我的要求:
SELECT date, groupe1, groupe2, groupe3, ROUND(groupe1 + groupe2+ groupe3, 1 ) AS TOTAL
FROM lesGroupes
WHERE journal LIKE journal1 OR
journal LIKE journal2
所以我想转置数据以通过groupe和日期显示单个数字
谢谢avance, 晚上好。
答案 0 :(得分:1)
类似的东西:
SELECT date,
SUM(groupe1),
SUM(groupe2),
SUM(groupe3),
SUM(ROUND(groupe1 + groupe2+ groupe3, 1))
FROM yourTable
WHERE journal LIKE journal1 OR journal LIKE journal2
GROUP BY date
答案 1 :(得分:1)
您需要按日期aggregate进行数据分组
Update my_table
set lat = right(substr(mycolumn, 1, locate(' ',mycolumn) -1) ,
length(substr(mycolumn, 1, locate(' ',mycolumn) -1)) -1),
lng = right(substr(my_column, locate(' ',my_column)+1, 100),
length(substr(my_column, locate(' ',my_column)+1, 100))-1)
答案 2 :(得分:1)
这是一个非常简单的总和和组:
SELECT `date`, SUM(groupe1), SUM(groupe2), SUM(groupe3), SUM(groupe1+groupe2+groupe3)
FROM yourTable
WHERE journal IN ('journal1', 'journal2')
GROUP BY `date`
注意:date
是一个保留字,您应该避免将其用作列名,否则会让您头疼。您还可以将LIKE..etc
简化为IN()
(除非您需要搜索部分字符串,否则应使用=
代替LIKE
。)