24 ŞUBAT 2009, Salı
Sql COUNTIF toplama işlevi Sunucu eşdeğer
Kayıtlar yalnızca belirli bir koşula göre sayma yeteneği (örneğin sayısı belirli bir sütun değeri 1'e eşit olduğu kayıtları yalnızca) ihtiyacı GROUP BY
bir fıkra ile bir sorgu yapıyorum.
SELECT UID,
COUNT(UID) AS TotalRecords,
SUM(ContractDollars) AS ContractDollars,
(COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1
FROM dbo.AD_CurrentView
GROUP BY UID
HAVING SUM(ContractDollars) >= 500000
COUNTIF()
çizgi belli ki başarısız beri yok yerel SQL fonksiyonu COUNTIF
, ama fikir işte belirlemek için yüzde tüm satırları değeri '1' için Sütunum.
Düzgün MS SQL 2005 ortamında bunu uygulamak için nasıl bir planın var mı?
CEVAP
24 ŞUBAT 2009, Salı
SUM
(COUNT
!) kullanabilirsiniz CASE
bir açıklama ile birlikte, bu gibi:
SELECT SUM(CASE WHEN myColumn=1 THEN 1 ELSE 0 END)
FROM AD_CurrentView
Not: bu çevreye bağımlı olabilir ama benim kendi test NULL
s bir sorun değildi. Boşluk gibi ele verebilir:
SELECT SUM(CASE WHEN ISNULL(myColumn,0)=1 THEN 1 ELSE 0 END)
FROM AD_CurrentView
Bunu Paylaş:
Oracle SQL Server eşdeğer'In IsNu...
'pythonic' eşdeğer 'kat...
C# IsNull eşdeğer() SQL Server işlevi...
Toplama işlevi olmadan TSQL Özet...
SQL güncelleştirme sorgusu toplama işl...