如何通过 SQL 查询选择集合数据?

Posted

技术标签:

【中文标题】如何通过 SQL 查询选择集合数据?【英文标题】:How to select Collective data through SQL query? 【发布时间】:2015-05-19 19:57:01 【问题描述】:
SELECT COUNT(a.running_ID)
       ,a.operation_name
       ,a.return_Code
    FROM log_master_2may_q9 a
       ,log_detail_2may_q9 b
    WHERE a.execution_id = b.execution_id
        AND b.type = 'MSISDN'
        AND operation_name IN ( 'manageProfile', 'getPayment' )
    GROUP BY a.return_Code
       ,a.operation_name;

这里发生的情况是我从多个返回代码中获取数据,例如“101”、“102”、“902”代表失败,返回代码“100”和“S”代表成功。

每次 return_Code 我都会得到一些计数。

现在我想要的是为失败代码和成功代码找到的集合数据。

我尝试使用 Concat 命令进行上述查询,但出现错误。

有人可以帮忙吗?

附加信息:

数据来自这里的多个表。

输出是这样的:

Count(A.running_ID) operation_name record_code 第765章 102 14 管理档案 102 10 获取付款 902 第661章 262 管理档案 100 11737 获得付款 100 20 获取支付 101

【问题讨论】:

【参考方案1】:
SELECT 
  Sum(case When a.return_Code = '101' then 1 end) Code101Total,
  Sum(case When a.return_Code = '102' then 1 end) Code102Total,
  Sum(case When a.return_Code = '902' then 1 end) Code902Total,
  Sum(case When a.return_Code = '100' then 1 end) Code100Total,
  Sum(case When a.return_Code = '100' then 1 end) Code100Total,
  Sum(case When a.return_Code In ('101', '102', '902') then 1 end) Fails,
  Sum(case When a.return_Code = '100' then 1 end) SuccessesTotal
FROM log_master_2may_q9 a
   join log_detail_2may_q9 b
      on b.execution_id = a.execution_id
WHERE b.type = 'MSISDN'
    AND operation_name IN ( 'manageProfile', 'getPayment' )
GROUP BY a.return_Code

【讨论】:

它没有给出想要的结果。与此一样,我只是获得带有错误代码名称的附加列,但需要的是如果:对于操作名称“manageprofile”,如果我收到错误代码“902”并将 20 视为计数,那么对于“101”代码,将其视为 780 和对于“102”,它的 56 应该只显示一列失败,其中上述三列的总和应该为 856。 根据我的需要对您提供的查询进行了一些修改,现在它对我有用。谢谢查尔斯....

以上是关于如何通过 SQL 查询选择集合数据?的主要内容,如果未能解决你的问题,请参考以下文章

java sql查询如何选择没有参数的所有数据

SQL 如何查询日期在一定范围内的数据

如何对 sql 进行选择查询并访问数据库?

如何针对 db2 数据库优化 SQL/Python 选择查询?

无法查询/选择通过 Spark SQL 插入的数据

用dataframe重写sql查询;如何从选择中混合不同的来源