Chemical Name QTY DOA
------------- --- --------
Acetic acid 12 24-01-15
2BL 58 22-01-15
Action Viol 22 20-01-15
Balmetenca 74 18-01-15
AWH 13 13-01-15
AWH 22 13-01-15
Actoil 11 07-01-15
Ammonium sulp 12 09-01-15
Actoil 4 11 19-01-15
Actoil ITS 24 06-01-15
Balysyn 35 11-01-15
Bastimol PH 14 12-01-15
Acid Ph 17 05-01-15
Acetic acid 12 24-12-14
2BL 20 01-12-14
嗨,我想知道每个qty
中出现chemical_name
多少的输出
就像chemical_name
有qty(13+22)
那样我应该是25,其余的是化学物质......(即)使用以下查询查看每个chemical_name
am的总数量:
SELECT Chemical_name,
Qty,
DOA
FROM sample_chemical
GROUP BY Chemical_name,DOA,Qty
HAVING DOA BETWEEN '2015-01-01' AND '2015-01-30'
但它并没有总结。如果我使用where子句那么它工作正常..如果添加新的化学名称,那么我们不能使用where子句。
答案 0 :(得分:1)
您在查询中根本没有使用Sum函数!
这个怎么样:
Select Chemical_name, Sum(Qty), Count(Chemical_name), DOA
From sample_chemical
Where DOA between '2015-01-01' and '2015-01-30'
Group by Chemical_name, DOA
另外,我会给你一个建议:不要提出如此混乱的问题。这里的很多用户只会给你一个downvote,他们会是正确的,因为缺乏有关你需要的信息,以及你已经尝试过的信息。相反,尽量让事情尽可能清楚,帮助谁想要帮助你准确理解你的需求和问题。划分您的实际数据,数据库/表的结构,您想要生成的结果究竟有多大帮助。试着阅读你自己的问题,但是你不知道你的数据库,化学物质是什么,实际数量是多少,我想你会理解我的意思。
我还插入了发现了多少相同化学物质的计数(更改为使用来自sample_chemical表的一些Id,以获得更好的性能)。 :)
祝你好运,希望我能帮助你!答案 1 :(得分:0)
您需要从group by
中删除不需要的列,并在sum
中使用select
聚合。
仅在Chemical_name
group by
使用columns
,而不是qty
,因为您希望找到每个Chemical_name
中的SELECT Chemical_name,
Sum(Qty)
FROM sample_chemical
WHERE DOA BETWEEN '2015-01-01' AND '2015-01-30'
GROUP BY Chemical_name
总数。
qty
如果您希望Chemical_name
每个day
中的Chemical_name
总DOA
,那么您需要在group by
中添加SELECT Chemical_name,
Sum(Qty),
DOA
FROM sample_chemical
WHERE DOA BETWEEN '2015-01-01' AND '2015-01-30'
GROUP BY Chemical_name, DOA
和{{1}}
{{1}}