在我正在工作的项目中,我使用 php 语言和 mysql 数据库。
我认为使用临时表的原因是正确的,因为我执行了很多计算,而在javascript中他们会花费我很长时间。
我必须在屏幕上显示这些表格:。
表1:
Total data. | 6 Average. | 2984-99 Sum x-Media. | 5088.9 Sum (x-Media)^2. | 138092659.8396 Sum (x-Media)^4. | 1.09E+16 Maximum value. | 9812.12 Minimum value. | 18.23
表2:
Amount | x-Media | (x-Media)^2 | (x-Media)^4 839.12 | -2145.87 | 704122.3744 | 495788318130.694 18.23 | 18.23 | 332.3329 | 110445.15642241 9812.12 | 11957.99 | 96277698.8944 | 9.27E+15 23.93 | 5.7 | 572.6449 | 327922.18149601 863.21 | -11094.78 | 745131.5041 | 555220958402.328 6353.33 | 6347.63 | 40364802.0889 | 1.63E+15
所有计算均基于金额列,即此值。我从表tbl_layout_c得到它:
Amount decimal (18,2)
----------
839.12
18.23
9812.12
23.93
863.21
6353.33
所以查询是:
1 SELECT amount
2 (SELECT COUNT(*) FROM tbl_layout_c ) AS total_data
3 (SELECT SUM(amount) FROM tbl_layout_c ) AS total_sum,
4 (SELECT total_sum / total_data AS average,
5 (SELECT amount - average ) AS x_media,
6 (SELECT SUM(x_media)) AS suma_x_media
7 FROM tbl_layout_c
问题出在第6行:( SELECT SUM(x_media))AS suma_x_media 因为我获得与x_media列相同的值。例如:
Amount | x-Media | Sum x-Media.
839.12 | -2145.87 | -2145.87
我需要:
Amount | x-Media | Sum x-Media.
839.12 | -2145.87 | 5088.9
当我尝试在临时表的临时列(suma_x_media)中使用函数sum()时,我遇到了麻烦。它不起作用,我得到与x_media相同的值
任何人都知道我缺少什么?
答案 0 :(得分:0)
试试这个
select *,sum(x_media) from (SELECT monto, #obtengo el campo monto
(SELECT COUNT(*) FROM tbl_layout_c ) AS total_datos, #contar los registros
(SELECT SUM(monto) FROM tbl_layout_c ) AS suma_total, #suma total
(SELECT MAX(monto) FROM tbl_layout_c ) AS valor_maximo, #valor maximo
(SELECT MIN(monto) FROM tbl_layout_c ) AS valor_minimo, #valor minimo
(SELECT suma_total / total_datos) AS promedio, #promedio
(SELECT monto - promedio) AS x_media #media artimetica
FROM tbl_layout_c)tablealias
我在sql中尝试了你的数据并且它有效。您的总和(x_media)为0,sql中的数据如果您更改表2中的数据,那么您可以得到表1中提到的预期输出。