Foxtable(狐表)用户栏目专家坐堂 → [求助]SQL指点下 谢谢


  共有4040人关注过本帖树形打印复制链接

主题:[求助]SQL指点下 谢谢

帅哥哟,离线,有人找我吗?
jiskin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
[求助]SQL指点下 谢谢  发帖心情 Post By:2013/12/18 14:20:00 [只看该作者]

如果有一张表
ID     Qty
A       1
B       2
C       4
D       3
A       2
C       1
D       6

如果用select DISTINCT 能统计不重复的ID
但是我想 如果在统计不重复的同时 Qty也能汇总 需要怎么写这个语句呢?
教教我呗亲

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By: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


 回到顶部