【发布时间】:2013-09-24 22:56:56
【问题描述】:
我想对包含许多字段的表中的所有值进行平均。
我的数据是这样的
col1 col2 col3 ... col100
---- ---- ---- ------
1 1 1 1
2 4 8 16
3 9 27 81
并在查询中输出所有 AVG() 值,如下所示:
col1 col2 col3 ... col100
---- ---- ---- ------
2 4.67 12 32.67
以下查询给出错误。
SELECT AVG(*) FROM table
是否有任何 SQL 代码对所有字段进行 AVG() 而不显式命名?
注意:使用 OpenOffice Base。
【问题讨论】:
-
我不知道(如果有的话很酷)。如果这是一次性使用并且这些数字是连续的,您可以使用电子表格来帮助在 select 语句中写出 100 个列名。 @A.O - 你错过了他的问题吗?,你发布的链接无助于回答“是否有任何 SQL 代码对 AVG() 所有字段没有明确命名?”。
-
这是一个更大数据集的一部分。然后,平均值(和 sigma 等)必须与其他表相关,才能完成分析。通常,我使用电子表格,但随着收集的数据量很大,扩展到数据库会更有用......如果可能的话......
-
根据 Chris Albert 的回答,我怀疑您会找到解决此问题的方法。您遇到的最大问题是桌子设计。 Col1 - col100 让人想起平面文件和早期数据库。有相当多的数据结构会更适合您在这里要求的内容……并不是您要求的内容无法完成,而是无法以这种格式完成。
-
如果你使用非规范化的数据,你必须编写非规范化和非优化的查询来得到你想要的答案。规范化数据,查询变得微不足道。
标签: sql average openoffice-base