甲骨文 - 组级别摘要
-
23-09-2019 - |
题
我想创建一个具有每个组的总结报告。例如:
ID NAME COUNT TOTAL TYPE ------------------------------------------------------------- 1 Test 1 10 A 2 Test 2 8 A 18 7 Mr. Test 9 B 12 XYZ 4 B 13 25 ABC 3 C 26 DEF 5 C 19 GHIJK 1 C 9
我有一个查询,可以做一切除了总的列:
select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, defs.data_name NAME, sd.type
from some_data sd, data_defs defs
where sd.data_def_id = defs.data_def_id
group by some_data.type, some_data.id, defs.data_nam
order by some_data.id asc, count(amv.MSG_ID) desc ;
我只是不知道如何让一组的总结。在这种情况下,我试图获得COUNT的总和为每个组ID的
<强>更新强>
基团被式。忘了在原来的职位。
TOTAL是SUM(COUNT)为每个组。
解决方案
如何使用ROLLUP一样...
select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, defs.data_name NAME, sd.type
from some_data sd, data_defs defs
where sd.data_def_id = defs.data_def_id
group by ROLLUP(some_data.type, (some_data.id, defs.data_nam))
order by some_data.id asc, count(amv.MSG_ID) desc ;
这个作品在我的数据库一个类似的例子,但我只做到了以上两列,不知道怎么会起作用了更多...点击 希望这是有帮助的,结果 克雷格...
编辑:在汇总,要总结过去,但没有分类汇总过像ID和data_nam应在括号汇总里面混为一谈)列
其他提示
假设在SQL * Plus,你可以做这样的事情:
col d1 noprint
col d2 noprint
WITH q AS
(SELECT sd.id, count(sd.DATA_DEF_ID) COUNT, defs.data_name NAME, sd.type
FROM some_data sd JOIN data_defs defs ON (sd.data_def_id = defs.data_def_id)
GROUP BY some_data.type, some_data.id, defs.data_nam)
SELECT 1 d1, type d2, id, count, name FROM q
UNION ALL
SELECT 2, type, null, null, null, SUM(count) FROM q GROUP BY 2, type
ORDER BY 2,1,3;
我不能在PL / SQL开发人员8,只在SQL * Plus这项工作。甚至没有在命令窗口工作...
尝试返回的类型的所有项目的计数的子查询。这将
select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, tot.TOTAL_FOR_TYPE, defs.data_name NAME, sd.type
from some_data sd, data_defs defs,
(select count(sd2.DATA_DEF_ID) TOTAL_FOR_TYPE
from some_data sd2
where sd2.type = sd.type) tot
where sd.data_def_id = defs.data_def_id
group by some_data.type, some_data.id, defs.data_nam
order by some_data.id asc, count(amv.MSG_ID) desc ;
不隶属于 StackOverflow