Doktrin sorgu oluşturucusuna dönüştürmek istediğim şu sql deyimim var. Amaç Bu sql deyimi iyi çalışıyor derecelendirme değeri 1 ile ve derecelendirme değeri 2.Doktrin Sorgu Oluşturucusu Case ile Sayımı Seç
SELECT
COUNT(CASE WHEN rating.rating = 1 THEN rating.rating END) as rat1,
COUNT(CASE WHEN rating.rating = 2 THEN rating.rating END) as rat2
FROM rating
ile var kaç puan saymaktır - ama Doktrin deyimi haline dönüştürmek çalıştığınızda, artık yok. Hiçbir şey sayılmayacaksa (bu değer için herhangi bir derecelendirme olmadığı için), bana 0 yerine "1" değerini döndürür. Sayılacak hiçbir şey olmadığında doktrini basitçe sıfırlamak için nasıl söyleyebilirim? ..
return $qb
->addSelect('COUNT(CASE WHEN r.rating = 1 THEN r.rating ELSE 0 END) as rat_1')
->addSelect('COUNT(CASE WHEN r.rating = 2 THEN r.rating ELSE 0 END) as rat_2')
->getQuery()
->getResult();
Saygılarımızla, ben "BAŞKA 0" çıkararak denedim ama sonra bu kısmı gerekli olduğunu bir hata alıyorum
"sum" is not required - example: votings 2,2,2,2,2 should return 5 , because the rating with value 2 got voted 5 times.
kullanım 'neye ihtiyacınız almak için yerine' count' ait sum'. –
hey, 1 + 1 + 1 + 1 veya 2 + 2 + 2 + 2 + değerlerini toplamak istemiyorum, bir değerin ne sıklıkta derecelendirildiğini saymak istiyorum, ör. 2 + 2 + 2 + 2 = 4 (2 değeri ile derecelendirme için zaman). Tam olarak ihtiyacım olanı – user3746259