SORU
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 NULLs 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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Abbeydabby0277's channel

    Abbeydabby02

    9 ŞUBAT 2012
  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011