我想知道如何添加总计。我需要按人添加所有sale_id。它应该如下所示。我可以提取sale_name和sale_id,但我不确定如何创建一个总计如下面的sale_num的列和行。谢谢。
sale_Name sale_id sale_num
Jim Thomas 157452
Jim Thomas 153352
Jim Thomas 198762
Jim Thomas 3
Bill Simpson 254854
Bill Simpson 265782
Bill Simpson 233122
Bill Simpson 257411
Bill Simpson 4
答案 0 :(得分:0)
SELECT COUNT(*) FROM table_name WHERE sale_Name = 'Jim';
答案 1 :(得分:0)
这会将sale_num
作为一个单独的列,而不是您在预期输出中的单独行:
SELECT sale_name, sale_id, COUNT(*) OVER ( PARTITION BY sale_name ) AS sale_num
FROM mytable
答案 2 :(得分:0)
如果您想在结果中看到小计,可以尝试rollup
功能,例如:
with t as
(
select 'Jim Thomas' sale_name, 157452 sale_id from dual union all
select 'Jim Thomas' sale_name, 153352 sale_id from dual union all
select 'Jim Thomas' sale_name, 198762 sale_id from dual union all
select 'Bill Simpson' sale_name, 254854 sale_id from dual union all
select 'Bill Simpson' sale_name, 265782 sale_id from dual union all
select 'Bill Simpson' sale_name, 233122 sale_id from dual union all
select 'Bill Simpson' sale_name, 257411 sale_id from dual
)
SELECT sale_name, sale_id, count(sale_id) FROM t
GROUP BY rollup(sale_name, sale_id)
ORDER BY 1,2