gpt4 book ai didi

mysql - 从特定日期选择唯一记录,不包括以前日期的重复记录

转载 作者:行者123 更新时间:2023-11-29 05:02:53 24 4
gpt4 key购买 nike

我必须从存在于第 1 年和第 2 年的表中选择不同的 UC_Name,我正在使用以下查询:

(select DISTINCT(UC_NAME) from [table]
where cast([DATE_FORMATION] as date) <= '06-30-2018 00:00:00') as Year1

(select DISTINCT(UC_NAME) from [table]
where cast([DATE_FORMATION] as date) BETWEEN '06-30-2018 00:00:00' AND '06-30-2019 00:00:00') as Year2

就不同值而言,它为我提供了正确的值,但我想获得仅在第 2 年唯一存在且在第 1 年不存在的 UC_Name,即使它们在第 2 年日期中是唯一的我想要删除 year1 中存在的 UC_Names。我希望我说清楚了我想要得到什么。

它给了我这样的结果:

**Year1:**
Balicha
Kunchiti
Sangahi
Solband
Tijaban

**Year2**
Balicha
Khairabad
Kuddan
Kunchiti
Nasirabad
Nodiz
Sami
Sangahi
Shahrak
Solband
Tijaban

第 1 年的一些值在第 2 年也存在,这些值在第 2 年是唯一的,但我希望第 2 年的值是唯一的,并且也不会从第 1 年重复。

最佳答案

我觉得日期范围不对。日期 2018-06-30 出现在两个组中。牢记这一点,这里是NOT EXISTS解决方案:

SELECT UC_NAME
FROM t
WHERE DATE_FORMATION >= '2018-07-01'
AND DATE_FORMATION < '2019-07-01' -- made exclusive
AND NOT EXISTS (
SELECT 1
FROM t AS x
WHERE UC_NAME = t.UC_NAME
AND DATE_FORMATION < '2018-07-01' -- made exclusive
)
GROUP BY UC_Names

您还可以使用聚合:

SELECT UC_NAME
FROM t
WHERE DATE_FORMATION < '2019-07-01'
GROUP BY UC_NAME
HAVING MIN(DATE_FORMATION) >= '2018-07-01'

关于mysql - 从特定日期选择唯一记录,不包括以前日期的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com