2012-02-07 5 views
2

J'ai quelques problèmes avec cette chose sur laquelle je travaille en php (bien que je ne pense pas que cela soit important).Comment sélectionnez-vous deux comptes dans une seule requête?

J'ai une table appelée apples. Il a une colonne appelée good apples qui a les valeurs 0 or 1. Je veux faire une requête sql que je veux utiliser pour afficher good apples=1 sur le nombre total de pommes dans cette table. Comment puis-je compter ALL et good apples=1 dans une seule requête, si c'est le moyen de le faire?

+0

Avez-vous résumer les résultats de cette colonne ou est la valeur la même pour toutes les lignes? – JRL

+0

n'oubliez pas de marquer comme répondu si elle vous aide à résoudre votre problème. :) –

Répondre

1

essayez ceci:

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

0

Je suppose que cela va faire:

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

Vous pouvez toujours utiliser le nombre conditionnel MySQL.

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

Cette méthode est très préférée car en raison de la possibilité de capturer tout "CAS" que vous souhaitez définir. Pas que cela soit applicable pour ce cas, mais vous avez même la possibilité de "pondérer" vos comptes. – Micah

0

Vous pouvez faire quelque chose comme:

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

de sorte que vous obtenez la « bonne pomme » et « mauvais compte de pomme ». Évidemment, la somme des deux est votre total.

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

Try this ...

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

Ce n'est pas bon, car les résultats sont placés sur deux lignes. Le résultat final doit être deux valeurs sur une ligne. – Micah

Questions connexes