sql - 如何在选择postgresql中进行选择
问题描述
我有一个名为 jenis_kelamin 的列,我想在选择查询中显示男性和女性的性别。我有一个这样的查询,但出来的数据仍然是错误的,正确的方法是什么?
SELECT distinct mj.id, mj.nama_pd,
(select distinct count(jenis_layanan) from public.isian_kuis
where jenis_kelamin = 'Laki' ) as jumlah_laki,
(select distinct count(jenis_layanan)
from public.isian_kuis
where jenis_kelamin = 'Perempuan' ) as jumlah_perempuan
FROM public.master_jabatan mj
join isian_kuis ik on ik.jabatan_id = mj.id
group by mj.id,mj.nama_pd
order by mj.id;
解决方案
无需使用嵌套选择,只需Group By
像这样使用:
SELECT distinct mj.id,
mj.nama_pd,
SUM(CASE WHEN jenis_kelamin = 'Laki' THEN 1 ELSE 0 end) AS jumlah_laki,
SUM(CASE WHEN jenis_kelamin = 'Perempuan' THEN 1 ELSE 0 end) AS jumlah_perempuan
FROM public.master_jabatan mj
join isian_kuis ik on ik.jabatan_id = mj.id
group by mj.id,mj.nama_pd
order by mj.id;
推荐阅读
- android - 如何在 React-Native Android 中收听硬件键盘输入
- c++ - 在运行时导出项目资源
- javascript - 在 Django LANGUAGE_CODE 上设置 Vue.js 语言库
- three.js - 如何在three.js中只显示边缘线?
- java - 与 IntelliJ 错误的基本 Maven 集成
- vb.net - ACE.OLEDB.12.O 连接未打开
- linux - Tcpdump 通过文件轮换将 pcap 写入远程服务器
- c# - Azure 数据工厂 - Azure 连接 sql 数据库的功能不起作用
- flutter - 自定义导航器弹出到父级
- javascript - 动态加载图像。Phaser.js