如何使用列日期对 TABLE 的行进行分组
HOW TO GROUP ROWS OF A TABLE WITH COLUMN DATE
我想要一个查询来显示仅包含产品的容器数量,因此日期小于 01/01/2019 并且日期不为空..
示例:
我的 table : 选项卡
Num_Container
Num_Product
Date_Product
1
A1
01/01/2020
1
A2
01/01/2018
1
A3
01/01/2021
2
A4
01/01/2017
2
A5
01/01/2018
2
A6
01/01/2019
3
A7
Null
3
A8
01/01/2019
3
A9
01/01/2016
预期结果是:
Num_Container
2
容器必须仅包含小于或等于日期 01/01/2019 且日期不为空的产品。
可能是这样
select Num_Container
from yourtable
group by Num_Container
having max(Date_Product)< DATE'2019-01-01'
你可以尝试在HAVING
中使用条件聚合函数,它可以使用反向逻辑得到计数是0
SELECT Num_Container
FROM tab
GROUP BY Num_Container
HAVING COUNT(CASE WHEN Date_Product > TO_DATE('01/01/2019', 'DD/MM/YYYY') OR Date_Product IS NULL THEN 1 END) = 0
我想要一个查询来显示仅包含产品的容器数量,因此日期小于 01/01/2019 并且日期不为空..
示例:
我的 table : 选项卡
Num_Container | Num_Product | Date_Product |
---|---|---|
1 | A1 | 01/01/2020 |
1 | A2 | 01/01/2018 |
1 | A3 | 01/01/2021 |
2 | A4 | 01/01/2017 |
2 | A5 | 01/01/2018 |
2 | A6 | 01/01/2019 |
3 | A7 | Null |
3 | A8 | 01/01/2019 |
3 | A9 | 01/01/2016 |
预期结果是:
Num_Container |
---|
2 |
容器必须仅包含小于或等于日期 01/01/2019 且日期不为空的产品。
可能是这样
select Num_Container
from yourtable
group by Num_Container
having max(Date_Product)< DATE'2019-01-01'
你可以尝试在HAVING
中使用条件聚合函数,它可以使用反向逻辑得到计数是0
SELECT Num_Container
FROM tab
GROUP BY Num_Container
HAVING COUNT(CASE WHEN Date_Product > TO_DATE('01/01/2019', 'DD/MM/YYYY') OR Date_Product IS NULL THEN 1 END) = 0