Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据同一查询中的条件计算所有记录和部分记录?_Sql - Fatal编程技术网

Sql 如何根据同一查询中的条件计算所有记录和部分记录?

Sql 如何根据同一查询中的条件计算所有记录和部分记录?,sql,Sql,我尝试在sql中使用以下命令 SELECT year(datecreated) as tahun, jenis_kelamin, COUNT(jenis_kelamin) as jumlah from santri GROUP by jenis_kelamin, tahun 但它是这样表现的 +------+-------------+-----------+ | Tahun|jenis_kelamin| JUmlah | +------+-------------+----------

我尝试在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         |
+------+-------------+-----------+
+------+-----------+-----------+-----+
| Tahun| laki-laki | perempuan |Jumlah
+------+-----------+-----------+-----+
| 2009 |    5      | 0         | 5   |
+------+-----------+-----------+-----+
| 2    |    6      | 7         | 13  |
+-----+------------+-----------+-----+
我想要像这样的sql视图

+------+-------------+-----------+
| Tahun|jenis_kelamin| JUmlah    |
+------+-------------+-----------+
| 2009 |    Laki_laki| 5         |
+------+-------------+-----------+
|2010  |  Perempuan  | 7         |
+------+-------------+-----------+
|2010  |  laki-laki  | 6         |
+------+-------------+-----------+
+------+-----------+-----------+-----+
| Tahun| laki-laki | perempuan |Jumlah
+------+-----------+-----------+-----+
| 2009 |    5      | 0         | 5   |
+------+-----------+-----------+-----+
| 2    |    6      | 7         | 13  |
+-----+------------+-----------+-----+

我试图修改我的命令,但仍然与此不同

您似乎想要条件聚合:

+------+-------------+-----------+
| Tahun|jenis_kelamin| JUmlah    |
+------+-------------+-----------+
| 2009 |    Laki_laki| 5         |
+------+-------------+-----------+
|2010  |  Perempuan  | 7         |
+------+-------------+-----------+
|2010  |  laki-laki  | 6         |
+------+-------------+-----------+
+------+-----------+-----------+-----+
| Tahun| laki-laki | perempuan |Jumlah
+------+-----------+-----------+-----+
| 2009 |    5      | 0         | 5   |
+------+-----------+-----------+-----+
| 2    |    6      | 7         | 13  |
+-----+------------+-----------+-----+
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
值解释为输入错误。

(1)我删除了不兼容的数据库标记。只标记您真正使用的数据库。(2)
Tahun=
2`从何而来?您想处理多少不同的jenis_kelamin值?我使用Xampthank u@GordonLinoff的sql