如何解决count函数+派生表和组-使其全部起作用
有人可以帮我解释一下这个示例中SUM函数的去向吗?我试图获得返回列数的文字计数,而不是每个帖子ID的meta_key数。我想要一个数字,在分组后有5个结果。
SELECT nmbr,post_id,DeliveryDate,DeliveryType
FROM ( SELECT nmbr,MAX(CASE WHEN meta_key = 'value_1' THEN meta_value ELSE NULL END) as DeliveryDate,MAX(CASE WHEN meta_key = 'value_2' THEN meta_value ELSE NULL END) as DeliveryType
FROM wp_postmeta
GROUP
BY post_id
) AS derived_table
WHERE DeliveryDate >= CURRENT_DATE
AND DeliveryType = 'delivery'
我已经尝试过了,但是它没有计数或求和,并且关于HAVING子句有些问题,导致没有结果返回。如果我删除它,它会在表上显示所有结果,但不计算它们。
SELECT
post_id,COUNT(*) AS cnt,MAX(CASE WHEN meta_key = 'value_1' THEN meta_value END) AS DeliveryDate,MAX(CASE WHEN meta_key = 'value_2' THEN meta_value END) AS DeliveryType
FROM wp_postmeta
GROUP BY
post_id
HAVING
DeliveryDate >= CURRENT_DATE AND
DeliveryType = 'delivery';
解决方法
SELECT COUNT(*)
FROM (
SELECT nmbr,post_id,DeliveryDate,DeliveryType
FROM ( SELECT nmbr,MAX(CASE WHEN meta_key = 'value_1' THEN meta_value ELSE NULL END) as DeliveryDate,MAX(CASE WHEN meta_key = 'value_2' THEN meta_value ELSE NULL END) as DeliveryType
FROM wp_postmeta
GROUP
BY post_id
) AS derived_table
WHERE DeliveryDate >= CURRENT_DATE
AND DeliveryType = 'delivery'
) AS q
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。