PostgreSQL with子句使用
2017-05-08 15:19
106 查看
PostgreSQL提供的一种方法,用于写一个大的查询中使用的辅助报表与查询,能使复杂和大型查询简单易读。
1:with子句的使用
使用现有数据库查询,查询在2017.05.01号0点到2017.05.08号0点之间的充值玩家的id,sid,期间充值总数num。
命令如下:
with u as (select id, sum(amount) as num from pay where pay_time >= 1493568000 and pay_time < 1494172800 group by id) select u.id, pinfo.sid, u.num from u join pinfo on u.id=pinfo.id;
解析:
使用with查询出相关玩家的id和期间充值总数num,
再查询出对应id玩家的sid。
2:多个with子句的使用
使用现有数据查询,在1的基础上,增加查询这些玩家到
2017.05.08号0点的历史充值总数total。
with u1 as (select id, sum(amount) as num from pay where pay_time >= 1493568000 and pay_time < 1494172800 group by id), u2 as(select id, sum(amount) as total from pay where pay_time < 1494172800 group by id) select u1.id, pinfo.sid, u1.num, u2.total from u1, u2, pinfo where u2.id = u1.id and pinfo.id = u1.id;
解析:
使用with查询出固定时间内充值的玩家id和期间充值总数,
使用with查询出指定时间之前充值的玩家的id和历史充值总数,
再查询出u1中所有id对应的u2中的数据,以及pinfo中的sid。
1:with子句的使用
使用现有数据库查询,查询在2017.05.01号0点到2017.05.08号0点之间的充值玩家的id,sid,期间充值总数num。
命令如下:
with u as (select id, sum(amount) as num from pay where pay_time >= 1493568000 and pay_time < 1494172800 group by id) select u.id, pinfo.sid, u.num from u join pinfo on u.id=pinfo.id;
解析:
使用with查询出相关玩家的id和期间充值总数num,
再查询出对应id玩家的sid。
2:多个with子句的使用
使用现有数据查询,在1的基础上,增加查询这些玩家到
2017.05.08号0点的历史充值总数total。
with u1 as (select id, sum(amount) as num from pay where pay_time >= 1493568000 and pay_time < 1494172800 group by id), u2 as(select id, sum(amount) as total from pay where pay_time < 1494172800 group by id) select u1.id, pinfo.sid, u1.num, u2.total from u1, u2, pinfo where u2.id = u1.id and pinfo.id = u1.id;
解析:
使用with查询出固定时间内充值的玩家id和期间充值总数,
使用with查询出指定时间之前充值的玩家的id和历史充值总数,
再查询出u1中所有id对应的u2中的数据,以及pinfo中的sid。
相关文章推荐
- 使用包含 FROM 子句的 UPDATE
- 使用用IN子句的分页效率远远低于ADO分页!!!!!
- TOP子句和Order BY子句联合使用的时候,是先执行哪个?
- 使用sed把字符串转换为数据库中in子句的例子。
- C#中使用where子句限制泛型方法的泛型类型
- 构造使用IN子句的动态Transact-SQL方法进行编号查询
- order by居然不能直接在union子句中使用
- 使用GROUP BY子句的规则
- 在Mysql中使用in子句查询和排序
- pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?
- 使用GROUP BY子句的规则
- SELECT 语句中Having子句的使用
- 构造使用IN子句的动态Transact-SQL方法进行编号查询
- 在修改数据的SQL语句中使用OUTPUT子句带来的好处
- 在ASP中使用SQL语句之2:用WHERE子句设置查询条件
- 在AS2005的From子句中使用Select从句
- 在AS2005的From子句中使用Select从句
- .NET2005中使用Using子句进行事务管理
- order by居然不能直接在union子句中使用
- 聚合函数不能在where子句使用