以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]SQL指点下 谢谢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43898) |
-- 作者:jiskin -- 发布时间:2013/12/18 14:20:00 -- [求助]SQL指点下 谢谢 如果有一张表 ID Qty A 1 B 2 C 4 D 3 A 2 C 1 D 6 如果用select DISTINCT 能统计不重复的ID 但是我想 如果在统计不重复的同时 Qty也能汇总 需要怎么写这个语句呢? 教教我呗亲
|
-- 作者:Bin -- 发布时间:2013/12/18 14:23:00 -- 汇总 谁? 参考帮助的group by 语句 试试看是否能满足你需求 示例二 更多的时候,聚合函数是GROUP BY关键词配合使用的,用于进行分组统计。 例如统计每个客户订购产品的数量: SELECT 客户,SUM(数量) AS 数量 FROM {订单} GROUP BY 客户 分组列必须同时包括在SELECT子句和GROUP BY子句中,例如上面的客户列。 示例三 统计每个客户的订单数、订购数量、订购金额: SELECT 客户,Count(*) AS 订单数, SUM(数量) AS 数量, SUM(数量 * 单价 * (1 - 折扣)) AS 金额 FROM {订单} GROUP BY 客户 注意金额列是通过一个表达式计算得出的。 示例四 可以有多个分组列,例如统计每个客户订购不同产品的数量: SELECT 客户, 产品, SUM(数量) AS 数量 FROM {订单} GROUP BY 客户,产品 四、HAVING字句 HAVING和WHERE有点类似,不同的是WHERE用于过滤记录,而HAVING用于过滤分组。 例如我要统计出定购PD01产品的客户以及其订购数量,而且只列出总订购数量超过500的客户: SELECT 客户,SUM(数量) FROM {订单} WHERE 产品 = \'PD01\' GROUP BY 客户 HAVING SUM(数量) > 500 |
-- 作者:jiskin -- 发布时间:2013/12/18 14:41:00 -- 以下是引用Bin在2013-12-18 14:23:00的发言:
汇总 谁? 参考帮助的group by 语句 试试看是否能满足你需求
示例二 更多的时候,聚合函数是GROUP BY关键词配合使用的,用于进行分组统计。 例如统计每个客户订购产品的数量: SELECT 客户,SUM(数量) AS 数量 FROM {订单} GROUP BY 客户 分组列必须同时包括在SELECT子句和GROUP BY子句中,例如上面的客户列。 示例三 统计每个客户的订单数、订购数量、订购金额: SELECT 客户,Count(*) AS 订单数, SUM(数量) AS 数量, SUM(数量 * 单价 * (1 - 折扣)) AS 金额 FROM {订单} GROUP BY 客户 注意金额列是通过一个表达式计算得出的。 示例四 可以有多个分组列,例如统计每个客户订购不同产品的数量: SELECT 客户, 产品, SUM(数量) AS 数量 FROM {订单} GROUP BY 客户,产品 四、HAVING字句 HAVING和WHERE有点类似,不同的是WHERE用于过滤记录,而HAVING用于过滤分组。 例如我要统计出定购PD01产品的客户以及其订购数量,而且只列出总订购数量超过500的客户: SELECT 客户,SUM(数量) FROM {订单} WHERE 产品 = \'PD01\' GROUP BY 客户 HAVING SUM(数量) > 500
搞定,多谢BIN Select ID,sum(Qty) from {xxx} where x = xx GROUP BY ID |