【问题标题】:SQL - Adding a total line for each distinct value in column 1SQL - 为第 1 列中的每个不同值添加一个总行
【发布时间】:2021-08-12 15:53:47
【问题描述】:

我正在尝试为来自我的第一列的每个不同值添加一个“总计数”行。我厌倦了制作一个 UNION ALL,但却把事情搞得一团糟。 (基于 TL.OP_CODE 值。) 非常感谢任何帮助。对不起我的格式...

select 
tl.op_code as "OPS Code",  tl.current_status AS "Status", tl.service_level as "Service",
tl.Bill_number as "Bill number", tl.trace_no as "Trace No", 
tl.pick_up_by  AS "PU By", tl.origname, tl.origcity, tl.origprov,
tl.deliver_by AS "DEL By", tl.destname, tl.destcity, tl.destprov, tl.pallets 
from tlorder tl
where tl.current_Status NOT IN ('CANCL')
order by tl.op_code, tl.currency_code, tl.pick_up_by

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 抱歉 - 我正在使用 DB2 数据库 - 希望有意义
  • 您是否要在结果集中为该计数添加一些额外的列,对于每个基本行都将为 NULL?

标签: sql db2


【解决方案1】:

尝试以下方法:

WITH MYTAB (op_code, A, B) AS
(
-- You may put your original SELECT here 
-- instead of this artificial VALUES
VALUES
  (1, 1, 1)
, (1, 1, 2)
, (2, 1, 1)
) 
SELECT op_code, A, B, CAST (NULL AS INT) AS CNT
FROM MYTAB T
  UNION ALL
SELECT op_code, NULL, NULL, COUNT (1) CNT  
FROM MYTAB
GROUP BY op_code
ORDER BY op_code, CNT DESC;
OP_CODE A B CNT
1 1 1
1 1 2
1 2
2 1 1
2 1

【讨论】:

    【解决方案2】:

    例如,如果我有 student_score 表并且我试图在此处获取不同分数的分数总和,则使用汇总。

    | student_id | score |
    | ---------- | ----- |
    | 1          | 95    |
    | 2          | 95    |
    | 3          | 95    |
    | 4          | 93    | 
    | 5          | 93    |
    | 6          | 98    |
    | 7          | 98    |
    | 8          | 99    |
    | 9          | 91    |
    | 10         | 91    |
     
    
    SELECT student_id, sum(score) as score from student_score GROUP BY ROLLUP(score, student_id) ORDER BY score;
    
    | student_id | score |
    | ---------- | ----- |
    | NULL       | 948   |
    | 9          | 91    |
    | 10         | 91    |
    | NULL       | 182   |  
    | 4          | 93    |
    | 5          | 93    |
    | NULL       | 186   |
    | 1          | 95    |
    | 2          | 95    |
    | 3          | 95    |
    | NULL       | 285   |
    | 6          | 98    |
    | 7          | 98    |
    | NULL       | 196   |  
    | 8          | 99    |
    | NULL       | 99    |
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-11
      • 2022-11-23
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多