【发布时间】:2015-04-06 10:37:06
【问题描述】:
我有一个巨大的表格,包含三个“选择”列和许多“数据”列。
ID Thing1 Thing2 Thing3 avgData1 avgData2 highestEtc
---- -------- -------- -------- ---------- ---------- ------------
1 1 2 2 321 654 999
2 2 1 1 123 456 11
3 2 1 1 987 789 77
4 2 1 1 765 567 11
在我的查询中,我现在选择“Thing1”=x、“Thing2”=y、“Thing3”=z 的所有条目(这三列是选择标准。)
获取这些行的目的是对以下每个数据列执行操作:如果它以“avg”开头,我想计算所有选定条目上特定列的平均值。在另一个前缀上,我想计算哪个数字出现最多。
有没有办法让 MySQL 数据库为我完成所有这些工作?我需要一个自动计算列的平均值并执行其他操作的 SQL 语句。
例如,假设我要选择条件 Thing1=2、Thing2=1 和 Thing3=1。有没有一种方法可以编写语句,使其只返回一个条目,以及计算出来的东西?
Result
----------------- ----------------- ----
(123+987+765)/3 (456+789+567)/3 11
我听说这应该是可能的,并且不让数据库直接执行这些操作是一种不好的方法。不幸的是,我不知道该怎么做。
【问题讨论】:
-
听起来您正在使用 hacky 方法将应用程序逻辑存储在数据库中?
-
@Ejay 到目前为止,我只是在我的数据库中存储“正常”数据。但我希望 SQL 对我查询的条目执行一些操作,这样我就不必在我的代码中操作结果(我听说获取一些东西然后操作它是不好的)
-
在存储和更新 result 字段之前如何操作它以防任何计算字段更新?
标签: mysql sql average criteria