我有一张包含这些值的表......
id colA colB colC
55 00:00:00 NULL NULL
56 01:01:02 0.00007 0.00007
57 02:01:02 0 0.00007
58 03:01:02 0.00006 0
59 15:01:02 0.00012 0.00006
60 16:01:02 -0.00008 0.00012
61 20:59:02 -0.00006 -0.00008
62 21:05:01 0.00005 -0.00006
63 22:01:02 -0.00013 0.00005
64 23:01:02 0.00004 -0.00013
65 00:00:01 -0.00012 0.00004
66 01:01:02 -0.00004 -0.00012
67 02:01:02 0.00006 -0.00004
68 03:01:02 0.00004 0.00006
69 15:01:02 -0.00004 0.00004
70 16:01:02 0 -0.00004
71 23:01:02 -0.00014 0
72 00:00:01 -0.00011 -0.00014
73 01:01:02 -0.00004 -0.00011
74 02:01:02 0.00011 -0.00004
75 03:01:02 0.00005 0.00011
76 15:01:02 0 0.00005
77 16:01:02 -0.00008 0
78 23:01:02 0 -0.00008
79 00:00:01 0.00003 0
80 01:01:02 -0.00009 0.00003
81 02:01:02 -0.00007 0
82 03:01:02 -0.00007 -0.00016
83 15:01:02 0.00044 -0.00007
84 16:01:02 0 0.00044
现在我希望每次colA值变为15:01时得到colb,colc的SUM ... 输出应该类似于以下
colA sum(colB) SUM(colC)
15:01:01.582 0.0002500 0.0002000
15:01:01.582 -0.0002800 -0.0001200
15:01:01.582 -0.0001300 -0.0001700
15:01:01.582 0.0001600 -0.0002800
任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
您可以按照其后显示的cola
18:01
个数来表征每一行。然后你可以按这个号码分组。
在MySQL中,获取此数字的最简单方法是使用变量:
select grp, max(cola), sum(colb), sum(colc)
from (select t.*,
(@grp := @grp + (cola = '18:01')) as grp
from table t cross join (select @grp := 0) vars
order by id desc
) t
group by grp;