sql - Oracle SQL 比较两行并返回值

标签 sql oracle

我的数据采用以下格式

Test ID | DailyMonthly
    =======================
    12345   | Daily
    12345   | Monthly
    23456   | Daily
    23456   | Daily
    09876   | Monthly
    09876   | Monthly

我想返回结果,

12345 - Both
23456 - Daily
09876 - Monthly 

如何实现这一目标?提前致谢!

最佳答案

另一种选择是使用不同的count,如下所示:

SELECT "Test ID",
       CASE WHEN COUNT(DISTINCT "DailyMonthly") > 1 THEN 'Both'
            ELSE MIN("DailyMonthly")
       END AS Result
FROM data
GROUP BY "Test ID"
ORDER BY "Test ID"

干杯!!

关于sql - Oracle SQL 比较两行并返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60161286/

相关文章:

oracle - 如何获取 native Oracle 函数(例如 NVL、ABS 等)的列表

database - 在 Oracle 数据库之间复制包含 BLOB 列的表

php - 无法从数据库中获取当前月份和年份

sql - 如何在 DB2 SQL 中打印出 SQLHSTMT 变量的值?

java - JDBC 自定义类型映射顺序问题

sql - 查询 Oracle SCOTT 模式 - 最接近平均水平的薪水是多少?

oracle - 即使存在该列,为什么也有ORA-00904?

python - SQLAlchemy 使用合并更新 PostgreSQL 数组不起作用

sql - 从 jOOQ 中的例程查询

SQL 计算日历年内的日期段