如果两列满足特定条件,则 SQL 返回行

布伦特

我有一个表格,我需要根据是否满足某些条件来计算行数。该表具有 ID、级别和名称。Level可以是“1”或“2”,Number可以是“AAA 100”,数字范围在100-199之间,或者“AAA 500”,数字范围是500-599。一个 ID 可以有一个与它相关联的名称,来自任一范围,我想根据每个 ID 的级别是“1”还是“2”来计算来自某个范围的名称。

示例表:

一个计数

我需要做的是,如果 Level 列 = 2,则只返回数字大于或等于 500 的 Name 值的计数。如果 ID 的 Level = 1,则仅返回介于两者之间的 Name 值的计数100-199,或少于 500。

所需的输出是:

在此处输入图片说明

感谢您的帮助!

戈登·利诺夫

嗯。. . 我想你想要每个 id 一行。如果是这样,您可以使用单个聚合来执行此操作,并且coalesce()

select id,
       coalesce(sum(case when level = 2 and name >= 'AAA 500' then 1 end),
                sum(case when level = 1 and name < 'AAA 500' then 1 end)
               ) as cnt
from t
group by id;

如果您想要两个级别(如果两者都存在),则只需添加levelgroup by.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果SQL中满足特定条件,如何返回整数?

SQL查询返回行数,直到满足特定条件为止

SQL:如何获取其列满足特定条件的所有行

如果一组特定列中的值满足特定条件,则返回整行

如果根据数据帧的行和列值满足特定条件,如何获取列标题?

如果满足特定条件,则同一列的行之间的差异

如果5行中的任何3行满足特定条件,Python都会返回True

SQL查询仅在满足特定条件时才选择行

如果满足条件,如何编写SQL以返回一行,否则返回另一行

如果满足特定条件,如何防止特定行以下的行在python中运行?

SQL Server:如果不满足条件,如何默认返回1行

如何为涉及熊猫两列的特定条件返回行?

在SAS中,如果满足特定条件,如何停止标记一组行?

如何将满足特定条件的列的标题返回给pandas中的新列

使用 Python 删除满足两个特定条件(值)的数据帧行

Pandas:删除列中两个特定字符串之间的所有行,但前提是满足该行的特定条件

SQL查询从多值列中提取数据,但前提是它满足特定条件

满足特定条件时向特定列的行添加值

如果其余具有相同userID的行不是特定条件,如何编写获取行的SQL语句?

仅返回特定条件 SQL Server 的数据

r-在列中满足特定条件时保留行

SQL Server:仅提取满足特定条件的记录

SQL - 查找满足特定条件的重复记录

如何仅返回按Num分组的Slot上满足特定条件的行

筛选并返回组中所有满足特定条件的行

如何返回满足特定条件的会话子集?

如何仅在满足特定条件后从函数返回

读取整数并返回满足特定条件的输入数

如何根据特定条件在SQL中选择不同的行?