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

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • NPR

    NPR

    22 NİSAN 2006