我在sql中尝试使用此命令
SELECT year(datecreated) as tahun, jenis_kelamin, COUNT(jenis_kelamin) as jumlah
from santri
GROUP by jenis_kelamin, tahun
但它显示如下
+------+-------------+-----------+
| Tahun|jenis_kelamin| JUmlah |
+------+-------------+-----------+
| 2009 | Laki_laki| 5 |
+------+-------------+-----------+
|2010 | Perempuan | 7 |
+------+-------------+-----------+
|2010 | laki-laki | 6 |
+------+-------------+-----------+
我想要这样的sql视图
+------+-----------+-----------+-----+
| Tahun| laki-laki | perempuan |Jumlah
+------+-----------+-----------+-----+
| 2009 | 5 | 0 | 5 |
+------+-----------+-----------+-----+
| 2 | 6 | 7 | 13 |
+-----+------------+-----------+-----+
我尝试修饰我的迷信,但还是不喜欢
答案 0 :(得分:1)
您似乎想要条件聚合:
SELECT YEAR(datecreated) as tahun,
SUM(CASE WHEN jenis_kelamin = 'laki-laki' THEN 1 ELSE 0 END) as lakilaki,
SUM(CASE WHEN jenis_kelamin = 'Perempuan' THEN 1 ELSE 0 END) as Perempuan,
COUNT(*) as jumlah
from santri
GROUP by tahun;
我将第二行中的tahun
值解释为错字。