当前位置: 技术问答>java相关
哪为高手请指教(最好能够用SQL文解决),高分赠送!
来源: 互联网 发布时间:2017-03-10
本文导语: 现在我需要对一张表进行检索,假如共需要检索7个字段,前5个字段为一些名称的信息,第6,7个字段为一个Flag标记,比如说,如果为1的话,就说明此条记录为"已阅读",如果为"0"的话就说明此条记录为"未阅读"等等. 要求: ...
现在我需要对一张表进行检索,假如共需要检索7个字段,前5个字段为一些名称的信息,第6,7个字段为一个Flag标记,比如说,如果为1的话,就说明此条记录为"已阅读",如果为"0"的话就说明此条记录为"未阅读"等等.
要求:
如果在结果集中前5个自段全部相同,側变成一条记录(可以用GROUP BY)的功能,关键是还要对第6,7个字段进行统计,看在已经合并的组中有几条是"已阅读"的,有几条是"未阅读"的,想了很久,解决不了,数据库为Oracle.
哪为高手请指教,最好能够用SQL文解决,如果不能的话,用JAVA又该如何解决?
要求:
如果在结果集中前5个自段全部相同,側变成一条记录(可以用GROUP BY)的功能,关键是还要对第6,7个字段进行统计,看在已经合并的组中有几条是"已阅读"的,有几条是"未阅读"的,想了很久,解决不了,数据库为Oracle.
哪为高手请指教,最好能够用SQL文解决,如果不能的话,用JAVA又该如何解决?
|
正确的写法应该是:
select count(flag6) - sum(flag6) as noread, sum(flag6) as haveread from table group by 前五个字段
是用sum利用了flag6为1和0的取值
select count(flag6) - sum(flag6) as noread, sum(flag6) as haveread from table group by 前五个字段
是用sum利用了flag6为1和0的取值
|
如果flag6为数值型,就用
select sum(flag6) from table group by 前五个字段
select sum(flag6) from table group by 前五个字段
|
select count(flag6) from table where flag6 = 1