我在phpMyAdmin
的视图表中进行了查询。当我尝试进行查询时,结果是错误的。这是我的疑问:
SELECT TahunMasuk,
COUNT(CASE WHEN `JenisKelamin`=`Perempuan`) AS `Perempuan`,
COUNT(CASE WHEN `JenisKelamin`=`Laki-laki`) AS `Laki-laki`
FROM jeniskelaminreal
GROUP BY TahunMasuk;
错误消息
#1054 - Unknown column 'Perempuan' in 'field list'
我在视图表中使用left join
。这是我的名为 jeniskelaminreal
我可以做些什么来获得结果?提前谢谢
答案 0 :(得分:1)
在比较值时,您使用的是反引号而不是双引号。此外,您的CASE
语句缺少THEN
和END
,请尝试以下操作:
SELECT TahunMasuk,
COUNT(CASE WHEN `JenisKelamin`='Perempuan' THEN 1 END) AS 'Perempuan',
COUNT(CASE WHEN `JenisKelamin`='Laki-laki' THEN 1 END) AS 'Laki-laki'
FROM jeniskelaminreal
GROUP BY TahunMasuk;
答案 1 :(得分:1)
case
具有以下语法:
COUNT(CASE WHEN `JenisKelamin`= 'Perempuan' THEN 1 ELSE null END) AS `Perempuan`
或默认情况下else
部分为null
:
COUNT(CASE WHEN `JenisKelamin`= 'Perempuan' THEN 1 END) AS `Perempuan`
在MySQL中你也可以
SUM(JenisKelamin = 'Perempuan') AS `Perempuan`
字符串也用引号分隔,而不是反引号。
答案 2 :(得分:1)
您错过了THEN
和END
个关键字。此外,字符串常量需要用单引号括起来:
SELECT TahunMasuk,
COUNT(CASE WHEN JenisKelamin = 'Perempuan' THEN 1 END) AS `Perempuan`,
COUNT(CASE WHEN JenisKelamin = 'Laki-laki' THEN 1 END) AS `Laki-laki`
FROM jeniskelaminreal
GROUP BY TahunMasuk;
MySQL(您似乎正在使用)有一个方便的简写:
SELECT TahunMasuk,
SUM(CJenisKelamin = 'Perempua') AS Perempuan,
SUM(JenisKelamin = 'Laki-laki') AS `Laki-laki`
FROM jeniskelaminreal
GROUP BY TahunMasuk;
答案 3 :(得分:1)
在'Perempuan'
和'Laki-laki'
SELECT TahunMasuk,
COUNT(CASE WHEN `JenisKelamin`='Perempuan' THEN 1 END) AS 'Perempuan',
COUNT(CASE WHEN `JenisKelamin`='Laki-laki' THEN 1 END) AS 'Laki-laki'
FROM jeniskelaminreal
GROUP BY TahunMasuk;
答案 4 :(得分:0)
CASE
语句缺少ELSE
部分,后引用也是一个问题,所以它应该是这样的。
SELECT TahunMasuk,
COUNT(CASE WHEN `JenisKelamin`='Perempuan' THEN 1 END) AS `Perempuan`,
COUNT(CASE WHEN `JenisKelamin`='Laki-laki' THEN 1 END) AS `Laki-laki`
FROM jeniskelaminreal
GROUP BY TahunMasuk;
答案 5 :(得分:0)
根据mysql文档,语法为
theRawContactIdOfTheExistingContact
或强>
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
您的查询看起来像这样
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
您也可以使用SELECT TahunMasuk,
COUNT(CASE WHEN `JenisKelamin`='Perempuan' THEN 1 END) AS 'Perempuan',
COUNT(CASE WHEN `JenisKelamin`='Laki-laki' THEN 1 END) AS 'Laki-laki'
FROM jeniskelaminreal
GROUP BY TahunMasuk;
field()
来计算这些结果
sum()