web-dev-qa-db-fra.com

Compter des paires de valeurs distinctes dans plusieurs colonnes en SQL

Quelle requête comptera le nombre de lignes, mais distincte par trois paramètres?

Exemple:

Id      Name        Address 
==============================
1     MyName        MyAddress
2     MySecondName  Address2

Quelque chose comme:

select count(distinct id,name,address) from mytable
25
user1866731

Pour obtenir le nombre de combinaisons uniques de id, name et address:

SELECT Count(*)
FROM   (
        SELECT DISTINCT
               id
             , name
             , address
        FROM   your_table
       ) As distinctified
25
gvee

Obtenez toutes les colonnes id, name et address distinctes et comptez les lignes obtenues.

SELECT COUNT(*) FROM mytable GROUP BY id, name, address
8
Dzhuneyt

Une autre méthode (probablement pas prête pour la production ou recommandée) que je viens de créer consiste à concatter les valeurs dans une chaîne et à compter cette chaîne de manière distincte:

SELECT count(DISTINCT concat(id, name, address)) FROM mytable;
5
22samuelk

Vous pouvez aussi faire quelque chose comme:

SELECT COUNT(DISTINCT id + name + address) FROM mytable
1
Tadej