我有一个如下所示的SQL表

id, in_use
1, T
1, F
2, T
2, T
3, F

我正在try 编写一个SQL查询,它的逻辑是"如果一个ID有‘T’和‘F’,则返回‘T’",输出如下

id, in_use
1, T
2, T
3, F

我认为我应该执行某种聚合函数,但我不知道如何将两行合并为一行.有什么建议吗?

推荐答案

由于T大于F(作为字符或Ascii),如果一个id有T,则T将始终返回,只有当一个id的所有行都是F时,它才会返回F

SELECT
    id, MAX(in_use) as in_use
FROM mytable
GROUP BY id

Sql相关问答推荐

SQL:创建查询以添加减少的总数

使用交叉应用透视表在SQL中转换分段时间段&

Select 最大值,但当并列时,从其他列 Select 最大值

我如何计算字母a出现的字符串的次数?

转换表中的数据

PostgreSQL基于2个COLS的任意组合 Select 唯一行

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

如何使用SQL Server中的Nodes()方法执行与OPENXML相同的操作

HAVING子句内部过滤的正确方法

SQL递归.硬币兑换问题.-try 使用递归解决硬币找零问题

表函数的作用域和功能

基于开始/结束日期重叠的BigQuery突发行

从每月生成的系列中生成每日汇率

Select 组中的第一行,但在并发环境中

获取上个月和上一年的值

基于变量的条件 WHERE 子句

按公司和产品查询最近发票的平均价格的SQL查询

Oracle PL/SQL长期运行问题

COBOL\DB2作业(job)需要帮助?快来获取专业指导!

按 15 分钟递增计数分组,包括 0 计数