web-dev-qa-db-ja.com

SQLの複数の列で異なる値のペアをカウントする

どのクエリが行数をカウントしますが、3つのパラメーターで区別されますか?

例:

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

何かのようなもの:

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

idnameおよびaddressの一意の組み合わせの数を取得するには:

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

すべての別個のidnameおよびaddress列を取得し、結果の行をカウントします。

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

私が思いついたもう1つの(おそらく生産準備が整っておらず、推奨されない)方法は、値を文字列に連結し、この文字列を明確にカウントすることです。

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

次のようなこともできます。

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