Звучи сякаш трябва да добавите агрегатна функция:
SELECT CD_NO, purchase_date, Count(purchase_date) totalSalesFROM ArtistGROUP BY purchase_dateORDER BY CD_NO
MySQL ви позволява да ограничите броя на полетата, които ГРУПИРАТЕ ПО
така че това по-горе е само групиране по purchase_date
.
В други RDBMS можете да използвате подзаявка:
SELECT a1.CD_NO, a1.purchase_date, a2.TotalSalesByDateFROM Artist a1INNER JOIN( SELECT count(purchase_date) TotalSalesByDate, purchase_date FROM Artist GROUP BY purchase_date) a2 на a1.purchase_date=a2.purchase_dateORDER BY a1.CD_NOкод>
Редактиране:Въз основа на вашите актуализации трябва да можете да използвате нещо подобно на това:
SELECT a1.CD_NO, date_format(a1.purchase_date, '%Y-%m-%d') MostSalesFROM Artist a1INNER JOIN( SELECT count(purchase_date) TotalSalesByDate, purchase_date FROM Artist GROUP BY purchase_date) a2 на a1 .purchase_date=a2.purchase_dategroup от a1.CD_NO, a1.purchase_datehaving max(TotalSalesByDate) =(изберете max(Total) totalsales от ( SELECT cd_no, purchase_date, Count(purchase_date) Total FROM Artist a1 GROUP BY cd_no, purchase_date ) src където a1 .cd_no =src.cd_no ГРУПИРАНЕ ПО cd_no);
Вижте SQL Fiddle с демонстрация
Резултат:
<предварителен код>| CD_NO | МОСТСАЛЕС |---------------------| 1 | 2011-12-30 || 2 | 2012-03-22 || 3 | 2012-04-22 || 3 | 2012-04-24 |