【发布时间】:2014-05-08 03:06:45
【问题描述】:
我正在尝试编写一个返回以下内容的查询:
DNAME G TITLE SALARY
---------------------------------------- - ------------ ----------
1059000
Analyst 107000
Manager 395000
Developer 152000
Programmer 152500
Sr. Analyst 252500
F 366500
M 692500
Risk and Compliance 264500
Finance and Accounting Excellence 395000
Internal Audit and Financial Controls 399500
11 rows selected.
更新!!!好的,所以我在玩不同的查询,这是我与上述输出最接近的...看起来它仍然缺少所有工资的总和第一个返回的行...我相信为了使生成的输出以该格式显示是通过使用按多维数据集的分组功能但是我尝试了按分组设置多维数据集的不同组合无济于事...有什么想法???
select dname,gender,title,salary from (select dname,gender,title, grouping_id(dname, gender, title) 作为“group_id”,sum(salary) 作为来自 azdepartment 的薪水 通过分组集合(dname, 性别, 标题) 具有 grouping_id(dname, 性别, 标题)>0);
DNAME G TITLE SALARY
---------------------------------------- - ------------ ----------
Manager 395000
Programmer 152500
Sr. Analyst 252500
Analyst 107000
Developer 152000
Finance and Accounting Excellence 395000
Risk and Compliance 264500
Internal Audit and Financial Controls 399500
M 692500
F 366500
10 rows selected.
【问题讨论】:
-
SQL 不是报表创建工具,它是数据选择工具。期望的结果作为查询结果并没有真正的意义(不是说不可能实现,而是像用汽车敲核桃一样)——它是 4 个不同查询的组合。为什么不运行四个单独的查询?或者将四个的结果与
UNIONs 结合起来? -
它只是我需要的输出,所以我不知道他们为什么要这样
-
但是他们是说“写一条 SQL 语句给出这个结果”还是他们说“查询数据库给出这个结果”?有一个重要的区别。
-
我相信它通过一个单一的 sql 语句。您下面的查询语句实际上非常接近,它看起来像是答案的镜像,除了来自正确输出的第一行值不同
-
我会玩它让你知道