Farklı sütunlardaki farklı özellikleri sayan etkin bir sorgu oluşturma

Farklı sütunlarda belirli özelliklere sahip satır içeren bir tablom var. A sütunu 1 veya 0 olabilir. B sütunu boş veya bir değere sahip olabilir.

Sütun A olan tabloların satır sayısı 1 ile sayılır, tablodaki satırların sayısı B sütununu `` `ya da null olan satır sayıları ile B sütunundaki satır sayısı eşit olmayan bir sayılar sayılır. '' ve null'a eşit değil.

Bunları tek bir sorguya koymak mümkün mü yoksa üç farklı sorgu yazmak zorunda mıyım?

MySQL kullanıyorum. Teşekkür ederim.

1

1 cevap

B koşulunuz yine de tüm satırları sayar, böylece tek bir tarama ile yapabilirsiniz.

SELECT COUNT(CASE WHEN A=1 THEN 'X' END),
       SUM(CASE WHEN B='' OR B IS NULL THEN 1 ELSE 0 END),
       SUM(CASE WHEN B='' OR B IS NULL THEN 0 ELSE 1 END)
FROM YourTable
1
katma
Teşekkürler. Sadece merak ediyorum, ilk satırdaki 'X' 1 olmalı mı?
katma yazar Hard worker, kaynak
Teşekkürler Martin, anlıyorum. Sorgunuz çalışıyor.
katma yazar Hard worker, kaynak
@Hardworker - No. COUNT , tüm NOT NULL değerlerini sayar, böylece herhangi bir NOT NULL değeri çalışır. Yanlış izlenim verme ihtimaline karşı kasten 1 kullanmaktan kaçındım. SUM dersinin 1 sürümü için gereklidir.
katma yazar Martin Smith, kaynak