一条SQL语句的写法

gas_lb521 2007-10-31 10:49:04
表HMIS_ba_basy
字段有 id, a, b, c
1 是 是 是
2 否 否 否
3 是 否 是
4 否 是 是
用一条SQL语句统计出字段a=是,a=否,b=是,b=否,c=是,c=否的记录数

SELECT s1 = COUNT((CASE WHEN a= '是' THEN id ELSE 0 END)),s1 = COUNT((CASE WHEN a= '否' THEN id ELSE 0 END)),
FROM HMIS_ba_basy
这样统计把所有都统计出来啦
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gas_lb521 2007-10-31
  • 打赏
  • 举报
回复
谢谢!
jinjazz 2007-10-31
  • 打赏
  • 举报
回复
create table test(a varchar(10),b varchar(10),c varchar(10))

insert into test
select '是','是','是' union
select '否','否','否' union
select '是','否','是' union
select '否','是','是'

select
sum(case when a='是' then 1 else 0 end) as a是,
sum(case when a='否' then 1 else 0 end) as a否,
sum(case when b='是' then 1 else 0 end) as a是,
sum(case when b='否' then 1 else 0 end) as b否,
sum(case when c='是' then 1 else 0 end) as a是,
sum(case when c='否' then 1 else 0 end) as c否
from test
drop table test

/*

(4 行受影响)
a是 a否 a是 b否 a是 c否
----------- ----------- ----------- ----------- ----------- -----------
2 2 2 2 3 1

(1 行受影响)
*/
jinjazz 2007-10-31
  • 打赏
  • 举报
回复
create table test(a varchar(10),b varchar(10),c varchar(10))

insert into test
select '是','是','是' union
select '否','否','否' union
select '是','否','是' union
select '否','是','是'

select
sum(case when a='是' then 1 else 0 end) as a是,
sum(case when a='否' then 1 else 0 end) as a否,
sum(case when b='是' then 1 else 0 end) as a是,
sum(case when b='否' then 1 else 0 end) as b否,
sum(case when c='是' then 1 else 0 end) as a是,
sum(case when c='否' then 1 else 0 end) as c否
from test
drop table test

/*

(4 行受影响)
a是 a否 a是 b否 a是 c否
----------- ----------- ----------- ----------- ----------- -----------
2 2 2 2 3 1

(1 行受影响)
*/

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧