oracle_多字段统计(多count)

oracle_多字段统计

查询同一张表中同一字段的不同值的综合,方法如下:

select o.code 礼品代码,
o.name 礼品名称,
l.couponactivityid 券活动定义,
count(l.couponno) as 券总数量,
count(case
when l.state in (‘0‘) then
‘0‘
end) 未兑换券数量,
count(case
when l.state in (‘1‘) then
‘1‘
end) 已兑换未核销券数量,
count(case
when l.state in (‘2‘) then
‘2‘
end) 已核销券数量
from css_coupon l, css_award o
where l.couponactivityid = o.couponcode
and o.state = ‘正常‘
group by o.code, o.name, l.couponactivityid

用法解析:

count(case
when l.state in (‘0‘) then
‘0‘
end) 未兑换券数量,
count(case
when l.state in (‘1‘) then
‘1‘
end) 已兑换未核销券数量,
count(case
when l.state in (‘2‘) then
‘2‘
end) 已核销券数量

上述中有三个count,分别查询同一个字段l.state ,但是对这一个字段的查询值是不同的,即 in (‘0‘) in (‘1‘) in (‘2‘)  算法等同于,=‘0‘ =‘1‘ =‘2‘

此处简单记录一下,有兴趣的话可以搜索一下case的用法

时间: 2024-10-12 19:32:52

oracle_多字段统计(多count)的相关文章

SQL编程实例:Access数据库,两张表的统计,count、sum聚合函数的使用,iif的使用,group by的使用

小媛在努力 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在多媒体数据处理中,数据压缩算法尤为重要.小媛上完课后就想自己发明一个数据压缩算法.她想呀想,终于想到一个方法.在多媒体数据中有很多数据都是重复的,所以她想把连续相同的数据用数据出现的次数和数据本身表示.例如:1 1 1 2 3 3 3 3 3  压缩后及为3 1 1 2 5 3(表示3个1,1个2和5个3).有想法后小媛就希望把它用代码实现了.但是大家都知道小媛现在整天都忙着苦B的复习考研,连电脑都摸不到

分组统计:count,group by,having, order by

--统计男女生的总人数select COUNT(*) from Student where Sex='男'select COUNT(*) from Student where Sex='女'--统计每一个班级的总人数select COUNT(*) from Student where ClassId=1--分组统计:需要按班级分组,每一个组得到一个统计结果--select 字段列表 from 表列表 where 数据源筛选 group by 分组字段列表 order by 排序字段列表selec

Rsyslog mmnormalize event.tags字段统计

统计下面字段中event.tags的值(红色内容) { "url": "http:\/\/icache.sinaimg.cn\/006gPXD2gw1exo8u4i7mkj30f00qotgg.lar", "size": "10.79", "id": "295785", "action": "PUSH", "toidc": &q

SQL逗号分隔的字段统计(摘自网络)

前言: 由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式.即同一个列中存储了多个属性值(具体结构见下表). 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果. 表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果: ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 正文: www.2cto.com #需要处理的

大数据基础之词频统计Word Count

对文件进行词频统计,是一个大数据领域的hello word级别的应用,来看下实现有多简单: 1 Linux单机处理 egrep -o "\b[[:alpha:]]+\b" test_word.log|sort|uniq -c|sort -rn|head -10 2 Spark分布式处理(Scala优雅简洁) val sparkConf = new SparkConf() val sc = new SparkContext(sparkConf) sc.textFile("tes

mongoDB的安装及基本使用

1.mongoDB简介 1.1 NoSQL数据库 数据库:进行高效的.有规则的进行数据持久化存储的软件 NoSQL数据库:Not only sql,指代非关系型数据库 优点:高可扩展性.分布式计算.低成本.灵活架构.半结构化数据.简化关联关系 缺点:没有标准化.有限查询.不直观 常见NoSQL数据库 列存储:Hbase.Cassandra.Hypertable 文档存储:MongoDB.CouchDB k-v存储:TokyoCabinet.BerkeleyDB.MemcacheDB.redis

NHibernate COUNT(*) 统计问题

NHibernate这个框架用了有一年多了,相对有很大的优势,可以省去很多写Sql的时间. 但是如果你想用它做统计,那么有点抱歉,只能手动写写了.它内置的东西很难符合你的需求. 我遇到的问题是这样的.我需要统计一个表中根据一个字段分组统计这个每个组的数量.这个Sql很简单 表名要用对象名替换,字段也要用对应的属性描述,这个东西折腾了两个小时.以前没用过HQL.头一次. 如果你是一个高手不要见怪.我对这个没有特别深的见解,纯属个人观点.如果看了对你有帮助请帮忙推荐. 勿喷勿怪.大牛略过吧.这是一个

count(*),count(1)和count(字段)的区别

count(*),count(1)和count(字段)的区别 之前在写sql语句时,常常使用count(*)来执行查询数据条数,也使用过count(字段)来针对某一特殊字段进行查询,今天接触到了count(1)也可以用来进行数据统计,下来查看资料,对它们有了一定的了解. 很多人认为count(1)执行的效率会比count(*)高,原因是count(*)会存在全表扫描,而count(1)可以针对一个字段进行查询.其实不然,count(1)和count(*)都会对全表进行扫描,统计所有记录的条数,包

count(*),count(1),count(字段)

如果null参与聚集运算,则除count(*)之外其它聚集函数都忽略null. 如:    ID     DD     1      e     2    null    select  count(*) from table  --结果是2    select  count(DD)  from table  ---结果是1 按地区查询企业数目 实际上我只有4个企业填写了其区域编码测试的 count(字段) ,结果正确 然而,用count(*),就不对.所以 数数的表字段的有null(空的没写的