SQL中GROUP BY用法.doc
文本预览下载声明
SQL中GROUP BY的用法及常用聚合函数
问:select item.itemnum,item.in1,item.in4,inventory.location from item,inventory where item.itemnum=inventory.itemnum and inventory.location=DYB and item.in1=D/MTD/MRM GROUP BY ITEM.ITEMNUM
提示错误是NOT A GROUP BY EXPRESSION那位高人能指点一下是我是那里出错了,还有GROUP BY的用法谢谢了哈!
答:
HYPERLINK /search?word=GROUP%20BYfr=qb_search_expie=utf8 \t _blank GROUP BY 是分组查询, 一般 HYPERLINK /search?word=GROUP%20BYfr=qb_search_expie=utf8 \t _blank GROUP BY是和 聚合函数配合使用,你可以想想,你用了 HYPERLINK /search?word=GROUP%20BYfr=qb_search_expie=utf8 \t _blank GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
A B
1 bc
bcd
1 asdfg
select A,B from table group by A
你说这样查出来是什么结果,
A B
??? ? abc
bcd
sdfg
右边3条如何变成一条,所以需要用到聚合函数,比如
select A,count(B) 数量 from table group by A这样的结果就是
A 数量
3
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。
常用的聚合函数
AVG
AVG HYPERLINK /search?word=%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0fr=qb_search_expie=utf8 \t _blank 聚合函数计算一个组中非NULL值的平均值
COUNT
COUNT HYPERLINK /search?word=%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0fr=qb_search_expie=utf8 \t _blank 聚合函数返回一个显示组中行数的整数值
COUNT_BIG
和COUNT功能一样,只是COUNT_BIG返回 HYPERLINK /search?word=bigintfr=qb_search_expie=utf8 \t _blank bigint HYPERLINK /search?word=%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8Bfr=qb_search_expie=utf8 \t _blank 数据类型值
MAX
MAX HYPERLINK /search?word=%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0fr=qb_search_expie=utf8 \t _blank 聚合函数返回一组非NULL值中的最大值
MIN
MIN聚合函数返回一组非NULL值中的最小值
SUM
SUM聚合函数返回一个表达式中所有非NULL值的总和
STDEV
STDEV函数根据数据母体的样本返回由表达式提供的所有值的 HYPERLINK /search?word=%E6%A0%87%E5%87%86%E5%B7%AEfr=qb_search_expie=utf8 \t _blank 标准差
STDEVP
HYPERLINK /search?word=STDEVP%E5%87%BD%E6%95%B0fr=qb_search_expie=utf8 \t _blank STDEVP函数也返回由表达式提供的所有值的 HYPERLINK /search?word=%E6%A0%87%E5%87%86%E5%B7%AEfr=qb_search_expie=utf8 \t _blank 标准差,只是它计算整个数据母体
VAR
HYPERLINK /search?word=VAR%E5%87%BD%E6%95%B0fr=qb_search_expie=utf8 \t _blank VAR函数根据数据母体的样本返回由表达式提供的值的 HYPERLINK /search?word=%E6%96%B9%E5%B7%AEfr
显示全部