Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL语法是否在记录之间运行操作?_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql SQL语法是否在记录之间运行操作?

Mysql SQL语法是否在记录之间运行操作?,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一个mysql数据库,里面有一个表。此表由以下部分信息组成。它的值在一列中,月份为一月到五月。所以五个月。在相邻列中,每个月都有整数值的“计数”。请记住,月份的值可能重复。例如,表的一个片段可以读取 1月5日 1月10日 二月一日 3月20日 4月23日 四月三十四日 4月43日 5月9日 有更多的记录(160)。假设一个月的平均值运行一些sql命令,如 从tablename group by month中选择month,avg(count)。但是,这会将每个月的计数总和除以记录数。一个真正

我有一个mysql数据库,里面有一个表。此表由以下部分信息组成。它的值在一列中,月份为一月到五月。所以五个月。在相邻列中,每个月都有整数值的“计数”。请记住,月份的值可能重复。例如,表的一个片段可以读取 1月5日 1月10日 二月一日 3月20日 4月23日 四月三十四日 4月43日 5月9日 有更多的记录(160)。假设一个月的平均值运行一些sql命令,如 从tablename group by month中选择month,avg(count)。但是,这会将每个月的计数总和除以记录数。一个真正的平均值将把计数的总和除以每个月的天数。因此,我有以下陈述:

   select month, sum(count)/31 from trendsummary.traffictype where month like 'January';
   select month, sum(count)/28 from trendsummary.traffictype where month like 'February';
   select month, sum(count)/31 from trendsummary.traffictype where month like 'March';
   select month, sum(count)/30 from trendsummary.traffictype where month like 'April';
   select month, sum(count)/31 from trendsummary.traffictype where month like 'May';
这给了我每个月的平均计数。所以问题是…如果我想要一个1-4月的平均值,语法会是什么?所以我想有一个报表,它将取每个月的平均值(基于一个月的天数),然后取1月、2月、3月和4月的平均值,并将该值吐出来?这件事怎么办?谢谢

你可以试试:

select month, sum(count)/(31+28+31+30) 
from trendsummary.traffictype 
where month in ( 'January' , 'February','March','April' );

联合选择并将其括在括号中,并将其视为数据源,如本例所示:

select avg(*) from (
 select month, sum(count)/31 as average from ...
 union select ...
 union select ...
)

请记住,大多数sql引擎都需要像我一样(平均)命名计算表达式列,至少在所有联合选择的第一个选择中是这样。

也许您可以稍微更新一下格式,这很难理解;-)使用case case将记录分组在一起,如
case when month in(‘一月’、‘二月’、‘三月’然后是‘第一季度’,‘四月’、‘五月’、‘六月’然后是‘第二季度’
然后在新键上分组你是什么意思更新格式?我很抱歉,我应该提到,我甚至开始编程已经两周了。因此,任何行话或陈述都可能会在我的脑海中闪过。Wh你的意思是我应该更新格式吗?所以这个案例将这些月分组在一起…然后我可以对每个案例应用一个操作吗?如果我需要将每个月除以它自己的唯一天数,这将如何工作?这一个工作!谢谢。但是…假设我正在将此结果导出到图表中。我理解这可能不是您所了解的仔细研究……但上面陈述的结果给出了1月份的平均值。在图表中,该值将来自1月份。有没有办法为该结果集提供某种别名?我不明白。你能编辑你的问题并举例说明吗?我将不得不在一段时间内这样做,因为我目前不知道我无法访问该信息。我不想让你久等。今晚我将发布一个我所问问题的示例。谢谢你的帮助。欢迎!如果你愿意,你可以发布带有第二个目标的其他问题。这可能是我将要做的。今晚查看我的个人资料,了解新问题。这一个同样有效!我只是根据索纳利觉得上面的答案更友好。这只是个人的选择,没有什么不利于你的!这两个答案都很简单,我几乎为问这个问题感到难过。不过,我想思考简单的事情需要一定程度的天才。再次感谢。