sql sum嵌套查询+ group by
SQL 查询 by group 嵌套 sum
2023-09-14 09:09:30 时间
嵌套查询经典用法
WITH ps AS (SELECT DATE(created_at )AS dt, army_num, mid, army_id, left_num, kingdom_id,created_at, player_id,platform_id
FROM `heidao-market.mafia.army`
WHERE DATE(created_at) = "2019-08-14"
)
SELECT
SUM(army_num) AS sum_change,
AVG(left_num ) AS m_left,
SUM(army_num)/AVG(left_num +1 ) AS ratio,
COUNTIF( army_num<=0) AS ct_m,
COUNTIF(army_num>0) AS ct_p,
COUNTIF( army_num<=0)/( COUNTIF( army_num<=0)+COUNTIF(army_num>0)) as m_p,
max( army_num) as max_change,
min( army_num) as min_change,
max( army_num)/( min( army_num)) as mm_ratio,
player_id,dt
FROM ps
GROUP BY player_id,dt
提取login数据
with log as (SELECT action_time,DATE(action_time) as dt,lev ,kingdom_id ,login_time_length,player_id,platform_id
FROM `heidao-market.mafia.login`
WHERE DATE(action_time) >= "2019-07-01" and DATE(action_time) < "2019-07-02"
and action=-1)
SELECT
SUM(login_time_length) AS sum_login,player_id,dt
FROM log
GROUP BY player_id,dt
SELECT
player_id , sum_time
from (SELECT player_id ,sum(login_time_length) as sum_time FROM `heidao-market.mafia.login`WHERE DATE(action_time) = "2019-08-10" and action=-1 group by player_id )
where sum_time>3600
with 嵌套
with ps as (SELECT player_id FROM `cloud-test-199409.ledi.big_player` )
SELECT * FROM `heidao-market.mafia.army` WHERE DATE(created_at) >= "2018-08-01" and player_id in (select player_id from ps)
聚合army表
WITH ps AS (SELECT DATE(created_at )AS dt, army_num, mid, army_id, left_num, kingdom_id,created_at, player_id,platform_id
FROM `heidao-market.mafia.army`
where DATE(created_at) < "2019-08-01"
and player_id in (select player_id from `cloud-test-199409.ledi.R5`)
)
SELECT
SUM(army_num) AS sum_change,
AVG(left_num ) AS m_left,
SUM(army_num)/AVG(left_num +1.1234567) AS ratio,
COUNTIF( army_num<=0) AS ct_m,
COUNTIF(army_num>0) AS ct_p,
COUNTIF( army_num<=0)/( COUNTIF( army_num<=0)+COUNTIF(army_num>0)) as m_p,
max( army_num) as max_change,
min( army_num) as min_change,
max( army_num)/( min( army_num)+1.1234567) as mm_ratio,
player_id,dt
FROM ps
GROUP BY player_id,dt
相关文章
- 深入SQL执行计划之CBO查询转换(4):Group By 配置最优机能(Group By Placement)
- 数据分析sql面试必会6题经典_数据分析师SQL面试必备50题[通俗易懂]
- SQL语句实现查询SQL Server服务器名称和IP地址
- Mybatis多表查询与动态SQL特性详解
- mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法详解数据库
- Spark-Sql源码解析之二 Sqlparser:sql –> unresolved logical plan详解大数据
- SQL Server网络通信协议深入研究(sqlserver协议)
- sql develperMac上使用Oracle SQL Developer的指南(mac版oracle)
- MySQL命令运行SQL语句实战指南(mysql命令运行sql)
- SQL Server视图:定义、用途及操作指南(sqlserver视图)
- 如何使用MySQL查询并分析SQL计划(mysql查询sql计划)
- 优化深入浅出Oracle 高效SQL优化(oracle高效sql)
- sql探索SQL Server:前六条SQL语句(sqlserver前六条)
- 查询使用MSSQL对多表进行复杂SQL查询(sql mssql 多表)
- SQL Server中非空字段查询方法(mssql 非空 查询)
- MSSQL如何通过美化格式简化SQL查询(mssql美化格式sql)
- 解决mssql查询锁定数据库的技巧(mssql查询锁库sql)
- Oracle查询:锁定表的SQL语句(oracle查询锁表sql)
- 利用SQL查询Redis中的数据(用sql查询redis)
- sql使用cxoracle写出优化的SQL(cx_oracle写死)
- 将SQL查询结果存入Redis缓存(sql结果存入redis)
- 查询Oracle数据库也支持SQL查询(oracle也支持sql)
- sql在Oracle中如何执行SQL语句(oracle中 在哪执行)
- Oracle SQL处理空值的新思路(oracle sql空值)
- 使用Oracle SQL实现数据表查询(oracle sql查表)
- 交叉表查询sql语句
- sql多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘