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

  • 8lacKy

    8lacKy

    30 Mart 2009
  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009