Find adlı aşağıdaki tabloya sahibim ve SessionID sayısını "/ topic" ve "/ detail" adlarına sahip isimlerle döndürmek istiyorum. Bu nedenle, yalnızca SessionID = 1'in hem "/ topic" hem de "name" sütununda "/ detail" bulunduğu için benim durumumda 1 döndürmelidir. SQL select problemleri
Aşağıdaki kodu kullanmaya çalıştım ama sanırım GROUP BY'yi yine karıştırdım.
Thx!
Select count(distinct `SessionID`)
from Find
where `name` like "/detail%"
and `name` like "/topic%"
group by `SessionID`, `date`
order by `date`;
Ayrıca, ekran görüntüsünde görünmeyen "date" adlı başka bir sütun da var. Sütun tarihi, SessionID'nin hangi tarihte toplandığını belirtir. Bu nedenle, yukarıda bahsedilen amacım için SessionID tarafından gruplandırılabileceğimi düşündüm ve sonra tarihe göre gruplandırdım. Bu nedenle, her gün SessionID toplantı gereksinimi sayısını bileceğim.
1. Tablonuzun adı, tablonun DB'sinin üstünde yer alıyor mu? 2. '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' bir yazım hatası var. "/ Topic" için kontrol etmiyorsunuz. 3. neden her iki gruba göre ve tarihe göre sıralamanız gerekiyor? Tarihe göre gruba gerek var mı? –
Tarih sütunu neyi temsil ediyor? SessionId ile ilgili mi? – maxvv
evet, sessionID ile ilgilidir, SessionID'nin tarihini bildirir. sessionID = 1,2 için "april1" ve sessionID için "april2" deyin. 3 –