我有一个大约有1000万行的MySQL数据库和一个简单的SQL查询:
SELECT output FROM `table` WHERE MA > Price
Run Code Online (Sandbox Code Playgroud)
除了以上,我想得到:
我现有代码的问题(如下所示)是我多次查询表.这看起来非常低效.
是否可以查询数据库一次,然后萃取,如平均值,标准偏差,信息等.从结果?如果是这样,最有效的方法是什么?
SELECT STDDEV_POP(output) FROM `table` WHERE MA > Price
SELECT AVG(output) FROM `table` WHERE MA > Price
SELECT COUNT(output) FROM `table` WHERE MA > Price AND output > 0
SELECT COUNT(output) FROM `table` WHERE MA > Price AND output < 0
Run Code Online (Sandbox Code Playgroud)
***编辑除了平均值,标准偏差和正百分比之外,是否还可以获得实际的"输出"值?换句话说,还可以包含以下查询吗?
SELECT output FROM `table` WHERE MA > Price
Run Code Online (Sandbox Code Playgroud)
是.在这种情况下,您只需要一些条件聚合:
SELECT STDDEV_POP(output) as stddev_pop,
AVG(output) as avg,
SUM(output > 0) as output_gt_0,
SUM(output < 0) as output_lt_0
FROM `table`
WHERE MA > Price;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |