日期:2014-05-16  浏览次数:20833 次

如何查询多列值的出现频率
比如我有一张学生成绩表,行是学生名称,列是科目
如:
   
  语文 数学 英语
  张A 100 99 98
  王C 99 99 98
  李Z 89 87 100

如何才能查询出 这张表一百分出现的次数 99分出现的次数 等等

希望大家帮帮忙

------解决方案--------------------
select s,count(*) from (
select 语文 as s from 学生成绩表
union all
select 数学 from 学生成绩表
union all
select 英语 from 学生成绩表
) t
group by s
------解决方案--------------------
select count(*)
from (
select 语文 as score from 学生成绩表
union all
select 数学 as score from 学生成绩表
union all
select 英语 score from 学生成绩表
)Tscore 
where score =100
------解决方案--------------------



SELECT sum(iif(语文>=100,1,0))+sum(iif(数学>=100,1,0))+sum(iif(英语>=100,1,0)),
sum(iif(语文=99,1,0))+sum(iif(数学=99,1,0))+sum(iif(英语=99,1,0))

 from tty 

or

select count(*)
from (
select 语文 as score from 学生成绩表
union all
select 数学 as score from 学生成绩表
union all
select 英语 score from 学生成绩表
)Tt
group by score