SORU
8 EKİM 2012, PAZARTESİ


Nasıl bir SQL sorgu ile birden çok hesap almak için?

Bu sorguyu yazmak için nasıl merak ediyorum.

Bu gerçek sözdizimi sahte olduğunu biliyorum ama seni istiyorum ne anlamanıza yardımcı olacaktır. Çok daha büyük bir sorgu bir parçası olduğu için bu biçimde ihtiyacım var.

SELECT distributor_id, 
COUNT(*) AS TOTAL, 
COUNT(*) WHERE level = 'exec', 
COUNT(*) WHERE level = 'personal'

Bu sorguda döndürülen tüm ihtiyacım var.

Ayrıca, aşağıdaki işe yaramıyor diye bir satır olması lazım:

'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'

CEVAP
8 EKİM 2012, PAZARTESİ


Bir toplama işlevi ile CASE bir deyim kullanabilirsiniz. Bu temelde bazı TABLOLARINI: PIVOT bir fonksiyonu olarak aynı şeydir

select distributor_id,
    count(*) total,
    sum(case when level = 'exec' then 1 else 0 end) ExecCount,
    sum(case when level = 'personal' then 1 else 0 end) PersonalCount
from yourtable
group by distributor_id

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Majestic Casual

    Majestic Cas

    28 NİSAN 2012
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007