Mysql 按日期从1个表组中的sql 2列中选择
我对select语句使用1个表中的2个列并按日期对数据进行分组存在一些问题。 我拥有的数据如下所示: 我想要的结果是:Mysql 按日期从1个表组中的sql 2列中选择,mysql,sql,select,group-by,pivot,Mysql,Sql,Select,Group By,Pivot,我对select语句使用1个表中的2个列并按日期对数据进行分组存在一些问题。 我拥有的数据如下所示: 我想要的结果是: 任何人都可以在这方面提供帮助?您可以执行条件聚合: select date_format(date, '%Y-%m-01') date_month, sum(`close` > `open`) uptime, sum(`close` < `open`) downtime, sum(`close` = `open`) equalt
任何人都可以在这方面提供帮助?您可以执行条件聚合:
select
date_format(date, '%Y-%m-01') date_month,
sum(`close` > `open`) uptime,
sum(`close` < `open`) downtime,
sum(`close` = `open`) equaltime
stock_id
from mytable
group by date_month, stock_id
选择
日期格式(日期,%Y-%m-01')日期月份,
总和(`close`>`open`)正常运行时间,
总停机时间(`close`<`open`),
和(`close`=`open`)相等
股票代码
从mytable
按日期、月份、股票id分组
注意,我添加了一个额外的查询do count days,其中
close
等于open
您可以执行条件聚合:
select
date_format(date, '%Y-%m-01') date_month,
sum(`close` > `open`) uptime,
sum(`close` < `open`) downtime,
sum(`close` = `open`) equaltime
stock_id
from mytable
group by date_month, stock_id
选择
日期格式(日期,%Y-%m-01')日期月份,
总和(`close`>`open`)正常运行时间,
总停机时间(`close`<`open`),
和(`close`=`open`)相等
股票代码
从mytable
按日期、月份、股票id分组
注意,我添加了一个额外的查询do count days,其中close
等于open
您可以使用right()
从日期中提取所需月份
select
right(date, 6) as month,
sum(case when change > 0 then 1 else 0 end) as up_times,
sum(case when change < 0 then 1 else 0 end) as down_times,
stock_id
from yourTable
group by
right(date, 6),
stock_id
选择
右侧(日期,6)为月份,
求和(当更改>0时,则为1,否则为0结束)作为up_次,
总和(当变化小于0时,则为1,否则为0结束)作为下降时间,
股票代码
从你的桌子上
分组
对(日期,6),,
股票代码
您可以使用right()
从日期中提取所需月份
select
right(date, 6) as month,
sum(case when change > 0 then 1 else 0 end) as up_times,
sum(case when change < 0 then 1 else 0 end) as down_times,
stock_id
from yourTable
group by
right(date, 6),
stock_id
选择
右侧(日期,6)为月份,
求和(当更改>0时,则为1,否则为0结束)作为up_次,
总和(当变化小于0时,则为1,否则为0结束)作为下降时间,
股票代码
从你的桌子上
分组
对(日期,6),,
股票代码
请用您正在使用的数据库标记您的问题:mysql、oracle、postgresql…?您能详细说明结果吗?请用您正在使用的数据库标记您的问题:mysql、oracle、postgresql…?您能详细说明结果吗?