Mysql SQL错误(having子句中的未知列)。
上面的查询不起作用。我试图做到这一点:从某种意义上说Mysql SQL错误(having子句中的未知列)。,mysql,sql,Mysql,Sql,上面的查询不起作用。我试图做到这一点:从某种意义上说 [SQL]SELECT vlog.lead_id, vlog.phone_number FROM vicidial_log as vlog GROUP BY vlog.lead_id HAVING( CASE WHEN vlog.status = 'NA' THEN 1 WHEN vlog.status = 'ADC' THEN 1 END ) = COUNT(*) [Err] 1054 - Unknown column 'vlog.
[SQL]SELECT
vlog.lead_id, vlog.phone_number
FROM
vicidial_log as vlog
GROUP BY vlog.lead_id
HAVING(
CASE
WHEN vlog.status = 'NA' THEN 1
WHEN vlog.status = 'ADC' THEN 1
END
) = COUNT(*)
[Err] 1054 - Unknown column 'vlog.status' in 'having clause'
这是可行的,但它没有给我想要的结果
status=可以是任何东西
潜在客户id=不唯一
电话号码=不唯一
我正在尝试查找状态至少为
[SQL]SELECT
vlog.lead_id, vlog.phone_number, vlog.status
FROM
vicidial_log as vlog
GROUP BY vlog.lead_id
HAVING(
CASE
WHEN vlog.status = 'NA' THEN 1
WHEN vlog.status = 'ADC' THEN 1
END
) = COUNT(*)
任何其他组合都不应返回电话号码。这似乎可以:
ADC
NA
OR BOTH ADC AND NA
但是,您是否需要在
lead\u id
和phone\u number
上进行比较还不是100%清楚。这似乎是可行的:
ADC
NA
OR BOTH ADC AND NA
但是,您是否需要在
lead\u id
和phone\u number
上进行比较还不是100%清楚。这是在黑暗中拍摄的,但可能对您有用。将您的HAVING
子句更改为:
SELECT DISTINCT lead_id, phone_number
FROM vicidial_log vlog
WHERE status IN ('NA', 'ADC')
AND NOT EXISTS (SELECT *
FROM vicidial_log vlog2
WHERE status NOT IN ('NA','ADC')
AND vlog.lead_id = vlog2.lead_id
AND vlog.phone_number = vlog2.phone_number)
这是在黑暗中拍摄的,但也许对你有用。将您的
HAVING
子句更改为:
SELECT DISTINCT lead_id, phone_number
FROM vicidial_log vlog
WHERE status IN ('NA', 'ADC')
AND NOT EXISTS (SELECT *
FROM vicidial_log vlog2
WHERE status NOT IN ('NA','ADC')
AND vlog.lead_id = vlog2.lead_id
AND vlog.phone_number = vlog2.phone_number)
DB fiddle中的数据与您正在谈论的内容不一致……您在
having
子句中遗漏了count
聚合mysql
在第二个示例中允许使用此语法,但可能返回误导性结果。应该是having count(case…
)。DB fiddle中的数据与您正在谈论的内容不一致…您遗漏了having
子句中的count
聚合。mysql
在第二个示例中允许使用此语法,但可能返回误导性结果。应该是having count(案例…
。根据他的描述,这是正确的答案,如果lead\u id同时具有ADC
和NA
并且没有其他状态,则count(*)
将为2和sum(…)
如果lead\u id
只有一个状态,即ADC
或NA
计数和总和将为1,再次满足标准,则返回2个相同的goes(如果lead\u id
只有一个状态,则计数和总和将为1,这同样符合标准我如何实现查询,以便至少存在10条记录取决于您拥有的数据:)根据他的描述,这是正确答案,如果lead_id同时具有ADC
和NA
,并且没有其他状态,则count(*)
将为2和sum(…)
如果lead\u id
只有一个状态,即ADC
或NA
计数和总和将为1,再次满足标准,则返回2个相同的goes(如果lead\u id
只有一个状态,则计数和总和将为1,这同样符合标准我如何实现查询,以便至少存在10条记录取决于您拥有的数据:)