我在使用php进行这项工作时遇到了一些麻烦(尽管我认为这不重要)。如何在单个查询中选择两个计数?
我有一张名为的表格。它有一个名为good apples
的列,其值为0 or 1
。我想要执行一个sql查询,我想用它在该表中的总苹果中显示good apples=1
。如何在单个查询中统计ALL和good apples=1
,如果这样做?
我在使用php进行这项工作时遇到了一些麻烦(尽管我认为这不重要)。如何在单个查询中选择两个计数?
我有一张名为的表格。它有一个名为good apples
的列,其值为0 or 1
。我想要执行一个sql查询,我想用它在该表中的总苹果中显示good apples=1
。如何在单个查询中统计ALL和good apples=1
,如果这样做?
试试这个:
select sum(good_apples) as good_count, count(*) as all_count from apples
我想这会做:
SELECT SUM(good_apples), count(good_apples) FROM apple_table
您可以随时使用MySQL的条件计数。
SELECT
COUNT(goodapples) as totalCount,
COUNT(CASE WHEN apples.goodapples = 1 THEN 1 END)
AS
goodapplecount
FROM
apple;
此方法更受欢迎,因为可以捕获您可能想要定义的任何“CASE”。不是说它适用于这种情况,但你甚至有能力“衡量”你的计数。 – Micah 2013-07-23 15:57:52
你可以这样做:
SELECT b_good_apple, COUNT(b_good_apple) AS apple_count FROM apples
GROUP BY b_good_apple;
,让你得到了“好苹果”和“坏苹果”计数。显然,两者的总和就是你的总和。
SELECT count(*) as count,sum(good_apple) FROM `Apple`
尝试......
SELECT COUNT(good_apples) AS goodApples
FROM apples WHERE good_apples = 1
UNION SELECT COUNT(*) AS totalApples FROM apples
这不好,因为结果放在两行上。最终结果应该是一行上的两个值。 – Micah 2013-07-23 16:31:43
你有没有总结该列的结果,或者是价值相同的所有行? – JRL 2012-02-07 13:34:47
永远记得标记为答案,如果它可以帮助你解决你的问题。 :) – 2012-02-07 13:52:44