我的请求很简单,我算上表的不同列。 第一个查询计算子查询带来的列:
SELECT COUNT(field1), COUNT(field2), COUNT(field3)
FROM (
SELECT field1, field2, field3
FROM mytable
WHERE ...
ORDER BY id
LIMIT 500000
) AS rq
限制条款在我的用例中至关重要。
这个请求非常适合计算单个列,但我还需要计算一组列(很多非空列而不是单个列)。
所以我需要
的结果SELECT COUNT(1) AS mygroup
FROM mytable
WHERE (field4 IS NOT NULL AND field5 IS NOT NULL AND field6 IS NOT NULL)
但是在第一次查询的当前500000(LIMIT子句)行中。
我该怎么做?
感谢您的帮助
答案 0 :(得分:1)
只需使用条件聚合:
SELECT COUNT(field1), COUNT(field2), COUNT(field3),
SUM(CASE WHEN field4 IS NOT NULL AND field5 IS NOT NULL AND field6 IS NOT NULL THEN 1 ELSE 0 END)
FROM (SELECT t.*
FROM mytable t
WHERE ...
ORDER BY id
LIMIT 500000
) rq;