根据日期查找 1 列之间的差异
Find the difference between 1 column depending on date
当我运行这个:
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-01-31'
我看到 62 行
但当我这样做时
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-02-01'
我看到 59
我想看看 NAME 在 运行 for _LOAD_DATETIME::date = '2022-02-01'
时缺少什么
我认为这行得通,但行不通:
SELECT NAME FROM table
WHERE _LOAD_DATETIME::date = '2022-02-01'
AND NOT EXISTS (
SELECT NAME FROM
table
WHERE _LOAD_DATETIME::date = '2022-01-31')
为了您的目的,您必须使用 MINUS
:
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-01-31'
MINUS
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-02-01'
如果我们谈论 PostgreSQL
,您必须使用 EXCEPT
而不是 MINUS
。
有两个set operators MINUS or EXCEPT你可以使用(它们是彼此的别名)
SELECT column1 来自值 (1),(2),(3),(4)
减
SELECT column1 来自值 (2),(3),(4),(5);
给1
如果你想看5
你需要翻转SELECT的顺序。
当我运行这个:
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-01-31'
我看到 62 行
但当我这样做时
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-02-01'
我看到 59
我想看看 NAME 在 运行 for _LOAD_DATETIME::date = '2022-02-01'
时缺少什么我认为这行得通,但行不通:
SELECT NAME FROM table
WHERE _LOAD_DATETIME::date = '2022-02-01'
AND NOT EXISTS (
SELECT NAME FROM
table
WHERE _LOAD_DATETIME::date = '2022-01-31')
为了您的目的,您必须使用 MINUS
:
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-01-31'
MINUS
SELECT NAME FROM T1
WHERE _LOAD_DATETIME::date = '2022-02-01'
如果我们谈论 PostgreSQL
,您必须使用 EXCEPT
而不是 MINUS
。
有两个set operators MINUS or EXCEPT你可以使用(它们是彼此的别名)
SELECT column1 来自值 (1),(2),(3),(4) 减 SELECT column1 来自值 (2),(3),(4),(5);
给1
如果你想看5
你需要翻转SELECT的顺序。