1

我正在尝试查询一个表并获取一列结果,然后该列有多少结果。目前我必须分别运行两个查询,如下所示:

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。如果有一种方法可以在我的脚本中不执行循环的情况下将它们加起来,那也可以)

4

3 回答 3

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;
于 2013-10-21T21:15:20.657 回答
0

简单的:

SELECT DISTINCT
       field_a
      ,COUNT(DISTINCT field_a) OVER ()
FROM table_a
WHERE property_a = 1
AND property_b = 2;
于 2013-10-22T03:47:24.593 回答
0

你有没有尝试过:

select field_a, count(*)
from table_a 
WHERE property_a = 1 AND property_b = 2
group by field_a

?

根据@Bohemian 的建议,作为答案发布

于 2013-10-21T21:27:55.463 回答