我正在尝试查询一个表并获得一列结果,然后该列的结果有多少。目前我必须分别运行两个查询,如下所示:
SELECT DISTINCT field_a
FROM table_a
WHERE property_a = 1
AND property_b = 2;
SELECT COUNT(DISTINCT field_a)
FROM table_a
WHERE property_a = 1
AND property_b = 2;
我宁愿结合这些,因为他们正在执行相同的查询,但我无法弄清楚如何。像
这样的东西SELECT COUNT(DISTINCT field_a) AS my_count, DISTINCT field_a AS my_records
FROM table_a...
(我尝试了GROUP BY,但是它列出了每个不同结果中有多少...给了我一堆1。如果有一种方法可以在我的脚本中没有执行循环来完成这些,那也可以工作)
答案 0 :(得分:0)
您可以使用全局不同的计数加入每个不同的结果:
SELECT DISTINCT(field_a) as my_records, b.my_count
FROM table_a,
(
SELECT COUNT(DISTINCT field_a) as my_count FROM table_a
WHERE property_a = 1 AND property_b = 2
) b
WHERE property_a = 1 AND property_b = 2;
答案 1 :(得分:0)
你试过了吗?
select field_a, count(*)
from table_a
WHERE property_a = 1 AND property_b = 2
group by field_a
按@Bohemian
的建议发布答案答案 2 :(得分:0)
简单:
SELECT DISTINCT
field_a
,COUNT(DISTINCT field_a) OVER ()
FROM table_a
WHERE property_a = 1
AND property_b = 2;