Node.js 基于分组数据的PostgreSQL计数数据
我有一个像这样的数据库Node.js 基于分组数据的PostgreSQL计数数据,node.js,postgresql,Node.js,Postgresql,我有一个像这样的数据库 users email name state id bill@domain.com Bill CA 1 Susan WY 2 jill@domain.com Jill CA 3 phil@domain.com Phil WY 4 你会注意到苏珊没有电子邮件 我试图获得每个州的记录数
users
email name state id
bill@domain.com Bill CA 1
Susan WY 2
jill@domain.com Jill CA 3
phil@domain.com Phil WY 4
你会注意到苏珊没有电子邮件
我试图获得每个州的记录数,然后是每个州的非空电子邮件总数
我可以得到这样的州总数:
[
{state: 'CA', count: 2, email_count: 2},
{state: 'WY', count: 2, email_count: 1}
]
选择状态,按状态从用户组中将*计数为计数
这很有效
然后我试着得到这样的电子邮件总数:
[
{state: 'CA', count: 2, email_count: 2},
{state: 'WY', count: 2, email_count: 1}
]
选择state,COUNT*作为COUNT,COUNTSELECT*从电子邮件不为NULL的用户按状态分组
但这返回了一个解析语法错误
我正在尝试获取如下返回数据集:
[
{state: 'CA', count: 2, email_count: 2},
{state: 'WY', count: 2, email_count: 1}
]
试试这个
SELECT
state,
COUNT(*) AS total_count,
SUM(CASE WHEN email is not null then 1 ELSE 0 END) AS count_email_not_null
FROM users
GROUP BY state
它将为您提供预期的输出