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

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009