[英]Getting count of count from a Oracle SQL query
I have an oracle SQL query that selects the count of the company from different department. 我有一个oracle SQL查询,它选择来自不同部门的公司计数。
select
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM'),
count(*)
from
customer a, case b
where
a.cust_nb = b.case_cust_nb
and a.cust_company_nb in
('01062','01602','01603','01604','01605','01606')
and b.case_receive_dt > sysdate -365
and b.case_status_cd = 'CC'
group by
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM')
order by
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM')
This return the count
of a.cust_nm, a.cust_acct_nb, a.cust_company_nb, to_char(b.case_receive_dt, 'YYYYMM')
该返回
count
的a.cust_nm, a.cust_acct_nb, a.cust_company_nb, to_char(b.case_receive_dt, 'YYYYMM')
In the same query, I need one more count of all cust_acct_nb
在同一个查询中,我还需要一个所有
cust_acct_nb
计数
Eg:- 例如:-
cust_acct_nb cust_acct_nb cust_acct_nb cust_acct_nb count(*) Final_Total
KFC 1 12 09-10-1991 12
KFC 1 12 10-10-1991 10
KFC 1 12 11-10-1991 10 32
KFC 2 12 09-10-1991 12
KFC 2 12 10-10-1991 10
KFC 2 12 11-10-1991 15 37
How can I get Final_Total
in same query ? 如何在同一查询中获得
Final_Total
?
Please help!! 请帮忙!!
Use a subquery in the select
statement as follows: 在
select
语句中使用子查询,如下所示:
select a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM'),
count(*),
(select count(*)
from customer a1, case b1
where a1.cust_nb = b1.case_cust_nb
and a1.cust_company_nb in ('01062','01602','01603','01604','01605','01606')
and b1.case_receive_dt > sysdate -365
and b1.case_status_cd = 'CC'
and a1.cust_acct_nb = a.cust_acct_nb)
from customer a, case b
where a.cust_nb = b.case_cust_nb
and a.cust_company_nb in ('01062','01602','01603','01604','01605','01606')
and b.case_receive_dt > sysdate -365
and b.case_status_cd = 'CC'
group by a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM')
order by a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM');
OUTPUT: OUTPUT:
cust_acct_nb cust_acct_nb cust_acct_nb cust_acct_nb count(*) Final_Total
KFC 1 12 09-10-1991 12 32
KFC 1 12 10-10-1991 10 32
KFC 1 12 11-10-1991 10 32
KFC 2 12 09-10-1991 12 37
KFC 2 12 10-10-1991 10 37
KFC 2 12 11-10-1991 15 37
Can you try this? 你能试试吗? I cant test it since I have no data setup.
我无法测试它,因为我没有数据设置。
select
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM'),
count(*)
from
customer a, case b
where
a.cust_nb = b.case_cust_nb
and a.cust_company_nb in
('01062','01602','01603','01604','01605','01606')
and b.case_receive_dt > sysdate -365
and b.case_status_cd = 'CC'
group by rollup
(a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM'))
order by
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'YYYYMM')
- Try This:
select
a.cust_nm,
a.cust_company_nb,
to_char(b.case_receive_dt, 'dd-mm-yyyy'),
decode(grouping(a.cust_acct_nb),1,'Sum of group',a.cust_acct_nb),
count(*)
from
customer a, case b
where
a.cust_nb = b.case_cust_nb
and a.cust_company_nb in
('01062','01602','01603','01604','01605','01606')
and b.case_receive_dt > sysdate -365
and b.case_status_cd = 'CC'
group by rollup(
a.cust_nm,
a.cust_acct_nb,
a.cust_company_nb,
to_char(b.case_receive_dt, 'dd-mm-yyyy'));
Oracle SQL gives you possibility to query totals and subtotals in one query with ROLLUP extension. Oracle SQL使您可以使用ROLLUP扩展在一个查询中查询总计和小计。 Here is an example of such functionality:
以下是此类功能的示例:
SELECT fact_1_id,
fact_2_id,
SUM(sales_value) AS sales_value
FROM dimension_tab
GROUP BY ROLLUP (fact_1_id, fact_2_id)
ORDER BY fact_1_id, fact_2_id;
FACT_1_ID FACT_2_ID SALES_VALUE
---------- ---------- -----------
1 1 4363.55
1 2 4794.76
1 3 4718.25
1 4 5387.45
1 5 5027.34
1 24291.35
2 1 5652.84
2 2 4583.02
2 3 5555.77
2 4 5936.67
2 5 4508.74
2 26237.04
50528.39
You can get more examples here http://www.oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets.php#rollup 您可以在这里获得更多示例http://www.oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets.php#rollup
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.