1.将表中字段连接起来
使用||作为连接符
如TABLE_A中有字段FIRST_NAME,LAST_NAME,AGE,SEX;
SQL:SELECT 'FName:' || FIRST_NAME || ' LName:' || LAST_NAME AS 姓名 FROM TABLE_A;
2.聚合之后只能显示聚合的列和聚合函数计算的值
显示年龄和性别相同的数据的个数,年龄,性别。
不能显示姓名,因为没有通过姓名分组。
SELECT SUM(*),AGE,SEX FROM TABLE_A GROUP BY AGE,SEX;
3.多表链接且分组后,不能显示行号,可以这么做:再包一层,将原有sql作为一个表去查一次就可以添加上ROWNUM了。
4.多变连接且分组后,可以通过聚合函数的结果来排序(order by)
TBL_TH_QUESTION 题目表
TBL_TH_TMPL_QU 考试模板和题目关系表
TBL_TH_QUGROUP 题目分组表
TBL_TH_QUTYPE 题目类型表(题型表)
sql
SELECT 题型, 难度, 模块||'-'||子模块 AS temp, 总分, 题目数量, ROWNUM AS 排序 FROM ( SELECT E.QUTY_NAME AS 题型, A.QU_DIF_LEVEL AS 难度, C.QUGR_NAME AS 模块, D.QUGR_NAME AS 子模块, SUM(B.TMQU_SCORE) AS 总分, COUNT(*) AS 题目数量 FROM TBL_TH_QUESTION A LEFT JOIN TBL_TH_TMPL_QU B ON A.QU_KEY=B.TMQU_QU_KEY LEFT JOIN TBL_TH_QUGROUP C ON C.QUGR_KEY=A.QU_GROUP_KEY LEFT JOIN TBL_TH_QUGROUP D ON C.QUGR_PARENTKEY=D.QUGR_KEY LEFT JOIN TBL_TH_QUTYPE E ON E.QUTY_KEY=A.QU_TYPE_KEY WHERE A.QU_KEY IN ( SELECT TMQU_QU_KEY FROM TBL_TH_TMPL_QU WHERE TMQU_TMPL_KEY='A782FC01BE8047F18F333A3CC9B6AACE' ) GROUP BY E.QUTY_NAME, A.QU_DIF_LEVEL, C.QUGR_NAME, D.QUGR_NAME ORDER BY SUM(B.TMQU_SORT));