繁体   English   中英

可以在一个sql查询中获得一些计数吗?

[英]Can get some counts in one sql query?

美好的一天。

数据库:MySQL

表:

name (varchar 200)
status (enum 'open','close','pause')

为了获得所有状态的全name我需要使用4查询:

SELECT count(*) FROM TABLE //count all names
SELECT count(*) FROM TABLE where status = open //count names where status = open
SELECT count(*) FROM TABLE where status = close //count names where status = close
SELECT count(*) FROM TABLE where status = pause //count names where status = pause

有谁知道如何在一个 sql查询中获得所有计数,真的吗?

SELECT count(*) as total_count,
       sum(status = 'open') as status_open_count,
       sum(status = 'close') as status_close_count,
       sum(status = 'pause') as status_pause_count
FROM TABLE

使用以下查询:

SELECT status, count(name) as cnt FROM TABLE GROUP BY status;

你可以试试

Select Count(Status),Status,(Select Count(Status) as TotalCount From TABLE) From TABLE Group By Status;

另一种选择:

SELECT status, COUNT(*) as aCount,
FROM TABLE
GROUP BY status
UNION ALL 
SELECT 'All', COUNT(*) as aCount,
FROM TABLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM