gpt4 book ai didi

sql - 查询包含oracle db中多个字段的年份

转载 作者:搜寻专家 更新时间:2023-10-30 23:40:55 25 4
gpt4 key购买 nike

我正在尝试在 oracle 数据库中编写一个查询,帮助我选择包含所有 3 个数据的内容,让我举一个例子假设我有一张 table

ltr year
--------
'a' 2003
'b' 2003
'c' 2005
'a' 2003
'a' 2003
'j' 2008
'c' 2003

我想返回包含至少一个字母 a、b、c 实例的年份。在这里,2003 年将是唯一返回的年份。

目前为止

select distinct year 
from Data
where letter = 'a' or letter = 'b' or letter = 'c';

这也将返回 2005 年,这是不正确的。我错过了什么?感谢您的帮助!

最佳答案

在 where 子句中指定您想要的字母,并使用 having count(distinct ltr) = 3 获取所有字母至少出现一次的所有年份。

select year
from data
where ltr in ('a','b','c')
group by year
having count(distinct ltr) = 3

如果您想要只有字母 'a'、'b'、'c' 的年份:

select year
from data
group by year
having count(case when ltr not in ('a','b','c') then 1 end) = 0

关于sql - 查询包含oracle db中多个字段的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444788/

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