2013-03-03 95 views
0

我有一個像總結記錄

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

query1記錄一個表是countpid

query2是,如果所有的四個字段相同的記錄被視爲一個記錄其他個人記錄和記錄按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;

但我得到一個錯誤......好心糾正我的代碼。

回答

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 ║ 
╚═════╩══════════════╩═════════════╝ 
+0

非常感謝你 – var 2013-03-03 05:31:44

+0

歡迎您':D'很高興它幫助。 – 2013-03-03 05:32:08