2012-02-07 59 views
2

我在使用php进行这项工作时遇到了一些麻烦(尽管我认为这不重要)。如何在单个查询中选择两个计数?

我有一张名为​​的表格。它有一个名为good apples的列,其值为0 or 1。我想要执行一个sql查询,我想用它在该表中的总苹果中显示good apples=1。如何在单个查询中统计ALL和good apples=1,如果这样做?

+0

你有没有总结该列的结果,或者是价值相同的所有行? – JRL 2012-02-07 13:34:47

+0

永远记得标记为答案,如果它可以帮助你解决你的问题。 :) – 2012-02-07 13:52:44

回答

1

试试这个:

select sum(good_apples) as good_count, count(*) as all_count from apples

0

我想这会做:

SELECT SUM(good_apples), count(good_apples) FROM apple_table 
2

您可以随时使用MySQL的条件计数。

SELECT 
    COUNT(goodapples) as totalCount, 
    COUNT(CASE WHEN apples.goodapples = 1 THEN 1 END) 
AS 
    goodapplecount 
FROM 
    apple; 
+1

此方法更受欢迎,因为可以捕获您可能想要定义的任何“CASE”。不是说它适用于这种情况,但你甚至有能力“衡量”你的计数。 – Micah 2013-07-23 15:57:52

0

你可以这样做:

SELECT b_good_apple, COUNT(b_good_apple) AS apple_count FROM apples 
GROUP BY b_good_apple; 

,让你得到了“好苹果”和“坏苹果”计数。显然,两者的总和就是你的总和。

0
SELECT count(*) as count,sum(good_apple) FROM `Apple` 
0

尝试......

SELECT COUNT(good_apples) AS goodApples 
    FROM apples WHERE good_apples = 1 
    UNION SELECT COUNT(*) AS totalApples FROM apples 
+0

这不好,因为结果放在两行上。最终结果应该是一行上的两个值。 – Micah 2013-07-23 16:31:43

相关问题