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

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • PremiumBeat.com - Royalty Free Music

    PremiumBeat.

    16 Kasım 2008