0

次のようなレコードのテーブルが1つあります

╔═════╦══════╦══════════╦══════════╗
║ PID ║ NAME ║  DATE1   ║  DATE2   ║
╠═════╬══════╬══════════╬══════════╣
║ 123 ║ john ║ 20110401 ║ 19700101 ║
║ 123 ║ john ║ 20110401 ║ 19700101 ║
║ 123 ║ john ║ 20110401 ║ 19700101 ║
║ 323 ║ mike ║ 20110401 ║ 19900101 ║
║ 323 ║ mike ║ 20110401 ║ 19900101 ║
╚═════╩══════╩══════════╩══════════╝

query1countオンですpid

query24 つのフィールドがすべて同じである場合、そのレコードは 1 つのレコードとして取得されます。それ以外の場合は、個々のレコードとレコードがpid注文時にカウントされます。

上記の結果は次のとおりです。

╔═════╦══════════════╦═════════════╗
║ PID ║ TOTALRECORDS ║ TOTALUNIQUE ║
╠═════╬══════════════╬═════════════╣
║ 123 ║            3 ║           1 ║
║ 323 ║            2 ║           1 ║
╚═════╩══════════════╩═════════════╝

やったselect pid,count(pid),(select count(pid) group by pid,name,date1,date2) from <table> group by pid;

しかし、エラーが発生します...親切にコードを修正してください。

4

1 に答える 1

1
SELECT  pid,
        COUNT(*) totalRecords,
        COUNT(DISTINCT name, date1, date2) totalUnique
FROM    TableName
GROUP   BY pid

結果

╔═════╦══════════════╦═════════════╗
║ PID ║ TOTALRECORDS ║ TOTALUNIQUE ║
╠═════╬══════════════╬═════════════╣
║ 123 ║            3 ║           1 ║
║ 323 ║            2 ║           1 ║
╚═════╩══════════════╩═════════════╝
于 2013-03-03T05:10:09.207 に答える