来自地狱的MySQL查询
根据下表信息:来自地狱的MySQL查询,mysql,Mysql,根据下表信息: A B C D E 1 786788 123.45 0 617 2 786788 654.21 0 3271 3 786788 111.11 0 556 4 786788 224.45 0 1122 5 786788 0
A B C D E
1 786788 123.45 0 617
2 786788 654.21 0 3271
3 786788 111.11 0 556
4 786788 224.45 0 1122
5 786788 0.12 12 0
6 786788 3.21 321 0
7 786788 0.22 22 0
8 786788 0.33 33 0
9 786788 757.57 0 3788
10 786788 545.41 0 2727
11 786788 0.07 7 0
12 786788 0.05 5 0
13 786790 50 0 125
14 786790 50 0 125
15 786790 50 0 125
16 786790 50 0 125
17 786790 50 0 125
18 786788 1.23 0 6
19 786788 0.12 0 1
20 786788 0.12 0 1
21 786788 0.05 0 0
22 786788 0.55 0 3
23 786788 0.45 45 0
24 786788 1.47 0 7
25 786788 0.41 0 2
26 786788 0.74 74 0
27 786788 100 0 500
36 786788 5 0 25
37 786788 24 0 120
38 786788 23 0 115
39 786788 1.47 0 7
40 786788 12 0 60
41 786788 14 0 70
43 786222 7.8 0 39
44 786222 0.12 12 0
45 786788 47.47 0 237
46 786788 9.89 989 0
47 786788 1.23 0 6
48 786788 1.23 0 6
我试图在一次查询中获得以下信息:
除非我弄错了,否则建议的字段列表与查询中实际需要的字段列表非常接近。我还没有对此进行测试,但是试一试(它使用MySQL的
groupby
来执行您需要的DISTINCT
/分组):
除非我弄错了,否则建议的字段列表与查询中实际需要的字段列表非常接近。我还没有对此进行测试,但是试一试(它使用MySQL的
groupby
来执行您需要的DISTINCT
/分组):
我不清楚你是想让总和在B的每一个值之内,还是在整个表中,并在每一行重复。如果是前者(对我来说最有意义),我想这正是你想要的:
SELECT B, COUNT(*), SUM(IF(E = 0, 0, C)), SUM(D), SUM(E)
FROM FollowingTable GROUP BY B
我不清楚你是想让总和在B的每一个值之内,还是在整个表中,并在每一行重复。如果是前者(对我来说最有意义),我想这正是你想要的:
SELECT B, COUNT(*), SUM(IF(E = 0, 0, C)), SUM(D), SUM(E)
FROM FollowingTable GROUP BY B
这是工作吗
select b, count(b),sum(case e when 0 then 0 else c end), sum(d), sum(e) from test01 group by b
这是工作吗
select b, count(b),sum(case e when 0 then 0 else c end), sum(d), sum(e) from test01 group by b
到目前为止,您尝试的查询是?结果将如何格式化
DISTINCT(B列)
返回多行,而count
和sum
只返回一行row@InSane我试过很多变体,你只要相信我的话就行了。我来这里是为了从答案中学习,而不是复制和粘贴。到目前为止,您尝试的查询是?结果将如何格式化DISTINCT(B列)
返回多行,而count
和sum
只返回一行row@InSane我试过很多变体,你只要相信我的话就行了。我来这里是为了从答案中学习,而不是复制和粘贴。啊,“案例”。。我怎么能忘记这个案子?时间太长了。@rideTheWave是的,我喜欢它,也讨厌它=P。同样地,如果你现在不与CASE
说话,那么IF()
语句也会起同样的作用(就像拉里的回答一样)。啊,“CASE”。。我怎么能忘记这个案子?时间太长了。@rideTheWave是的,我喜欢它,也讨厌它=P。同样地,如果你现在没有与CASE
对话,那么IF()
语句也会起同样的作用(就像拉里的回答一样)。