Comment sélectionner le comte de deux colonnes distinctes?
Je voudrais faire un décompte du nombre total de distinctes COMPONENT_ID et PACKAGE_ID retour de ce SQL.
SELECT DISTINCT COMPONENT_ID, PACKAGE_ID FROM BILL;
OriginalL'auteur Oh Chin Boon | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser:
Fourni
||
est l'opérateur de concaténation de chaîne.COUNT(COMPONENT_ID)
*COUNT(PACKAGE_ID)
?pas de. il ne sera pas.
Si j'ai le tableau suivant: (a, b), (1,1), (1,2), (2,1), (2,2) puis
select count(distinct concat(a, b)) from mytable
sera de retour le 4, maisselect count(*) from (select distinct a from mytable union select distinct b from mytable) subtable
sera de retour 2. Aussi, à l'aide de concat signifie que les lignes comme (12, 3) et (1, 23) seront considérés comme identiques et ne sera pas comptée.vrai. Mais la réponse est juste une idée générale de la façon dont le problème peut être abordé. Vous avez l'idée, l'analyse de vos données, et de les utiliser pour résoudre votre problème. I. E. vous pouvez utiliser un séparateur avec de la corde:
COMPONENT_ID || 'SOME#WEIRD#SEPARATOR' || PACKAGE_ID
. Merci pour l'entrée, de toute façon.C'est vrai, mais vous n'êtes toujours pas le calcul de
COUNT(COMPONENT_ID)
+COUNT(PACKAGE_ID)
, vous êtes le calcul deCOUNT(COMPONENT_ID)
*COUNT(PACKAGE_ID)
parce que leDISTINCT
opérateur va générer toutes les combinaisons possibles deCOMPONENT_ID
etPACKAGE_ID
OriginalL'auteur Pablo Santa Cruz
OriginalL'auteur
OriginalL'auteur Adam Fabicki