2016-04-07 33 views
0

Bir sanatçının kaç kariyeri boyunca çaldığını bilmem gereken yere ihtiyacım var bu masada, ben sadece bir sanatçı için brevity uğruna göndereceğim.Grup beklediğimden dönme ve geri dönme sayma

SELECT artist_ID, 
    count(*) AS churned_albums 
FROM relation 
GROUP BY group_ID, 
    album_ID; 

Ve aşağıdaki verileri bekliyoruz:

"artist_ID" "churned_albums"   
"57"  "3"      

Ama ne yazık ki, ben olsun bu:

"artist_ID" "churned_albums" 
"57"  "9"    
"57"  "3"    
"57"  "2"    

"artist_ID" "song_ID" "album_ID" "touring" 
"57"  "98"  "48"  "No"   
"57"  "99"  "48"  "No"   
"57"  "100"  "48"  "Sí"   
"57"  "101"  "48"  "No"   
"57"  "102"  "48"  "No"   
"57"  "103"  "48"  "No"   
"57"  "104"  "48"  "No"   
"57"  "105"  "48"  "No"   
"57"  "106"  "48"  "No"   
"57"  "279"  "163"  "No"   
"57"  "280"  "163"  "No"   
"57"  "281"  "163"  "No"   
"57"  "380"  "241"  "No"   
"57"  "381"  "241"  "No"   

Sonra bu gitmek veri almak için

Her albüm için her şarkıyı sayıyor ve yapmam MySQL'in darn şarkıları görmezden gelmesini ve sadece albümleri saymasını söyleme. Ayrıca count(*) yerine count(artist_ID) ve diğer birçok permütasyona çalıştım, ama hiçbir işe yaramadı.

Bu soru How to use count and group by at the same select statement ve Using group by on multiple columns ile yakından ilişkilidir ama yardımcı olmadılar. Yardım için :(

teşekkürler! :)

+1

Verilerinizde hayır "group_id" sütunu bulunmaktadır. – Tibrogargan

+0

Neden bir şey seçtiniz ama grup başka bir şeyle mi? – Strawberry

+0

@Tibrogargan woops! Bunları düzenlemeyi unuttum. Tablo başka bir dilde ve bu dizeleri çevirmeyi unuttum. : P – Deses

cevap

2

başına benzersiz albümlerin # saymak için count(distinct album_id) kullanabilirsiniz . Burada göz atın: http://sqlfiddle.com/#!9/d1372/2

ben kullandım sorgusu:

select group_id, count(distinct album_id) AS churned_albums 
from relations 
group by group_id; 
+0

Aynı sorguyu sqlfiddle üzerinde yaptım ama daha hızlıydın: P –

+0

Teşekkür ederim Bulanık ve arsho! Ayrıca bana SQL Fiddle hakkında bilgi verdiğiniz için teşekkürler, gelecek sorular için kullanışlı olacak. :) – Deses

1

Ne istediğiniz sorgunun görüntülenmesi için bir sqlfiddle oluşturduk group_id

select group_id, 
    count(distinct album_id) as churned_albums 
from relation 
group by group_id 
İlgili konular