gpt4 book ai didi

mysql - SQL 返回第 1 列包含 X 和 Y 的行

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

我知道这一定是在 SQL 101 中,但我需要返回其中列同时包含 X 和 Y 且 ID 重复的行。

示例表。

 ACCOUNT   |   Activity
-------------------------
1 | Email
1 | Appointment
2 | Email
2 | Email
3 | Email
3 | Appointment

我需要只返回账户 1 和 3 的 SQL,如下所示:

 ACCOUNT   |   Activity
-------------------------
1 | Email
1 | Appointment
3 | Email
3 | Appointment

在伪代码中,它是(其中 ID 与“约会”和“电子邮件”一起出现)

不应返回帐户 2,因为表中没有 WHERE Account = 2 AND Activity = 'Appointment' 的行。

我希望这是有道理的,并且非常感谢您的意见。

提前致谢。

行下编辑

<小时/>

感谢大家的建议,我非常喜欢 @rafa 使用 count unique 的建议,但是当然查询比第一次建议的更复杂。第一个表实际上是另一个查询的结果集,下面的查询包括@rafa建议,但查询不起作用,我知道我需要调用子查询,但不确定在哪里或如何调用,再次感谢:

SELECT T.ACCOUNT, T.COMPANY, H.RESPONSE, H.DAT_ AS Resp_Date, H.USERNAME, (date_format(P.ENDDATE,'%M')) AS Renewal, T.OWNER, COUNT(DISTINCT(H.ACTIVITY)) AS Dis_Act, H.CustomerStatus, H.Contact, A.ANAL14 AS APPDATE
FROM TELRCMxxx T LEFT JOIN TELCOMxxx H ON T.ACCOUNT = H.ACCOUNT LEFT JOIN ACCSTOxxx P ON T.ACCOUNT = P.ACCOUNT LEFT JOIN RCMANLxxx A ON T.ACCOUNT = A.ACCOUNT
WHERE (H.ACTIVITY in ('Appointment', 'email'))
Group by Account
having Dis_Act > 1

J.

<小时/>

谢谢大家。

最佳答案

一个非常幼稚的方法是:

SELECT
*
FROM MyTable t1
WHERE EXISTS
(
SELECT 1 FROM MyTable WHERE ACCOUNT = t1.ACCOUNT AND Activity = 'Email'
)
AND EXISTS
(
SELECT 1 FROM MyTable WHERE ACCOUNT = t1.ACCOUNT AND Activity = 'Appointment'
)

关于mysql - SQL 返回第 1 列包含 X 和 Y 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517169/

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