首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >挑选在特定年份有销售经验的推销员

挑选在特定年份有销售经验的推销员
EN

Stack Overflow用户
提问于 2022-06-03 07:36:46
回答 3查看 50关注 0票数 0

我想找一位在1998、1999和2001年都有销售经验的推销员。

例如:

代码语言:javascript
复制
**year  salesmen**
  1998        a
  1998        a
  1998        b
  1999        a
  1999        b
  1999        c
  2001        a
  2001        b
  2001        c

结果应该是"a“和"b”,因为只有那些销售员在所有年份都有销售。

我不认为它需要复杂的查询,但我无法想出解决方案

EN

回答 3

Stack Overflow用户

发布于 2022-06-03 07:44:20

聚合是一种选择:

代码语言:javascript
复制
SELECT salesmen
FROM yourTable
WHERE year IN (1998, 1999, 2001)
GROUP BY salesmen
HAVING COUNT(DISTINCT year) = 3;
票数 0
EN

Stack Overflow用户

发布于 2022-06-03 07:44:29

该查询显示,在所有3年(199819992001年)中至少有一次销售人员,只有1人在表上阅读:

代码语言:javascript
复制
select salesmen
from your_table
group by salesmen having count(case when year = 1998 then 1 end)>0 and
                         count(case when year = 1999 then 1 end)>0 and
                         count(case when year = 2001 then 1 end)>0

DB<>FIDDLE LINK

票数 0
EN

Stack Overflow用户

发布于 2022-06-03 07:46:27

有许多选项可以得到预期的结果。一种是使用HAVINGCOUNTGROUP BY (已经有答案表明了这一点)。我想显示的选项是,不要查询重新编码的3年,而是这样做:

代码语言:javascript
复制
SELECT salesmen
FROM yourTable
WHERE year IN (SELECT year FROM yourtable)
GROUP BY salesmen
HAVING COUNT(DISTINCT year) = (SELECT COUNT(DISTINCT year) FROM yourtable);

如果这是有意的,这将是选择那些每年出现在你的表格中的销售人员的方式。

回到你的问题,另一种可能是使用IN

代码语言:javascript
复制
SELECT DISTINCT salesmen FROM yourtable 
WHERE salesmen IN
(SELECT salesmen FROM yourtable WHERE year = 1998) AND salesmen IN
(SELECT salesmen FROM yourtable WHERE year = 1999) AND salesmen IN
(SELECT salesmen FROM yourtable WHERE year = 2001);

您也可以使用EXISTS

代码语言:javascript
复制
SELECT DISTINCT salesmen FROM yourtable y 
WHERE 
EXISTS (SELECT 1 FROM yourtable WHERE year = 1998 AND salesmen = y.salesmen) AND 
EXISTS (SELECT 1 FROM yourtable WHERE year = 1999 AND salesmen = y.salesmen) AND
EXISTS (SELECT 1 FROM yourtable WHERE year = 2001 AND salesmen = y.salesmen);

您可以在这里看到不同之处,并尝试一下:db<>fiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72486211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档