当前位置: 首页 > 面试题库 >

GROUP BY同一列中的多个值

何烨华
2023-03-14
问题内容

我有这个SQL查询:

select prefix, code, stat, complete, COUNT(*) as Count
from table
group by prefix, code, stat, complete
order by prefix, code, stat, complete

列“前缀”是字母数字值(0-9a-zA-z)。我想要做的是,如果prefix的值是一个数字,则使该数字等于0。如果它是一个字母,它将保持其值。我试图在group
by子句下添加以下行:

(case when prefix like '%[0-9]%' then 0 else prefix end)

但是我收到一个错误“将varchar值’J’转换为数据类型int时转换失败。”。

是什么导致此错误?如何获得“前缀”列以显示0或字母?


问题答案:
case when prefix like '%[0-9]%' then '0' else prefix end

您显然也需要此作为表达式GROUP BY

select 
    NewPrefix = case when prefix like '%[0-9]%' then '0' else prefix end, 
    code, 
    stat, 
    complete, 
    COUNT(*) as Count
from table
group by 
    case when prefix like '%[0-9]%' then '0' else prefix end, 
    code, stat, complete
order by 
    case when prefix like '%[0-9]%' then '0' else prefix end, 
    code, stat, complete


 类似资料:
  • 文档显示了如何使用以输出列名为键的dict一次对groupby对象应用多个函数: 但是,这只对Series groupby对象有效。并且当类似地将dict传递给groupby数据帧时,它希望键是将应用该函数的列名。 我想做的是对几个列应用多个函数(但某些列将被多次操作)。此外,一些函数将依赖于groupby对象中的其他列(如sumif函数)。我当前的解决方案是逐列执行,并执行与上面的代码类似的操作

  • 我想知道,在Spring AMQP中,是否可以根据负载类型在多个类中接收来自同一队列的消息。 我知道在类中使用@RabbitListener注释,然后将@RabbitHandler放在方法上,但我希望在保持单个队列的同时将消息处理的复杂性拆分为多个类。 当前使用的版本:Spring AMQP v2.0.3以及RabbitMQ。

  • 问题内容: 该文档展示了如何使用输出列名称作为键的字典一次在groupby对象上应用多个功能: 但是,这仅适用于Series groupby对象。同样,当将字典类似地传递到groupby DataFrame时,它期望键是将应用该函数的列名。 我想做的是对多个列应用多个功能(但是某些列将被多次操作)。同样,某些函数将依赖于groupby对象中的其他列(如sumif函数)。我当前的解决方案是逐列进行操

  • 问题内容: 我想创建一个像堆栈溢出这样的问答应用程序。 我不知道如何在MySQL表列中存储多个答案。 我想知道如何在sql表的同一行中存储问题和多个答案。 问题答案: 创建两个表并使用外键关系将它们连接是最好的解决方案之一。因为将问题和答案保存在同一表格中可能不会使您对同一问题有多个答案。如果您希望一个问题有多个答案,那么数据库的冗余肯定会增加。因此,请尝试正确使用DB- Relationship

  • 问题内容: 如果每个员工有多个联系方式,我将获得多行,但我只希望每位员工列出他们的姓,名,部门名称,电子邮件和电话。 所以它应该像这样 这是我所拥有的,但不起作用: 我用以下查询解决了它: 问题答案: 如果要选择,则在子查询中,这两个联接可能是不必要的: 由于它们,您得到的行与特定人的联系人一样多。 最终查询可能类似于:

  • 我试图将数据框的多行合并成一行,不同值的列合并成一个列表。有多个列具有不同的值。 在一个列表中只需设置一列('b'),效果很好,但我不知道如何对多个列进行设置。 数据帧: 首选数据帧后期操作: 有没有一个简单的方法可以做到这一点?