|
楼主 |
发表于 2013-2-27 13:05
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
daveman 发表于 2013-2-27 12:00
老师请问下看了您的这个sql有几个地方学生不明白的:
为什么会有A.姓名>=B.姓名,字符串这个怎么还能>=,他 ...
问题1:为啥字符串不能进行比较?作用是通过比较得出所有比较组合为TRUE的结果。然后使用SUM()统计TRUE的个数。
问题2:COUNT(*)统计的是整张表的记录条数,不是单个字段,不忽略空值。SUM(1)是在表中插入一个全由数值常量1构成的字段,然后统计这个字段的和,本题中,SUM(1)和COUNT(*)的效果一样,但意义不同。
- TRANSFORM 值字段
- SELECT 行字段1,……,字段X FROM 表
- GROUP BY 对行记录分组的依据
- PIVOT 列标题 IN (作为返回结果表的列字段1,作为返回结果表的列字段2,……,作为返回结果表的列字段X)
复制代码
NULL若作为字段,那么在结果表中是不返回的。而题目的实现效果是不需要返回行字段,但交叉表查询的行字段参数不可省,故使用NULL。
题目返回的结果中并没有返回行字段(即NULL构成的字段),而是返回列字段和值字段记录,且值字段记录受GROUP BY子句后的行记录分组依据来对应返回不同行的值记录。
PS:请勿称呼我为老师,本人很讨厌这称谓,你可以叫我香帅或吴想都可以。{:soso_e120:}
|
评分
-
1
查看全部评分
-
|