给定一个数据查询整个文件中设置类似于:而是通过单独的数据,由每个唯一的列元素分组
╔═════════╦════════╦════════╗
║ FIELD1 ║ FIELD2 ║ FIELD3 ║
╠═════════╬════════╬════════╣
║ 11-1.01 ║ Jacob ║ 3 ║
║ 11-1.02 ║ Jacob ║ 4 ║
║ 12-2.01 ║ Jacob ║ 3 ║
║ 13-3.01 ║ Jacob ║ 4 ║
║ 13-3.02 ║ Jacob ║ 3 ║
║ 13-3.03 ║ Jacob ║ 2 ║
║ 11-1.01 ║ Chris ║ 3 ║
║ 11-1.02 ║ Chris ║ 4 ║
║ 12-2.01 ║ Chris ║ 2 ║
║ 13-3.01 ║ Chris ║ 4 ║
║ 13-3.02 ║ Chris ║ 3 ║
║ 13-3.03 ║ Chris ║ 2 ║
║ 11-1.01 ║ Mike ║ 4 ║
║ 11-1.02 ║ Mike ║ 3 ║
╚═════════╩════════╩════════╝
我需要找到字段3值的字段1的重复预十进制值的平均(小数点后的值不重要),用于每个唯一的Field2元素。 Field1值定义为CHAR类型和7位长度(包括连字符和小数)。
我目前能够通过使用WHERE子句,因此找到一个特定的字段2元的平均值:
SELECT prefix, COUNT(prefix), Field2, FORMAT(AVG(suffix),2)
FROM
(
SELECT LEFT(Field1,4) AS prefix, Field3 AS suffix, Field2
FROM mytable WHERE Field2 = 'Jacob'
)x
GROUP BY prefix;
然而,我的目标是在整个文件中运行,并找到每个平均值不同的Field2元素,因此我不需要运行程序的次数与有唯一的Field2名称的次数相同。 我觉得这应该是一个相当简单的改变,我目前的代码,但不知道该怎么做。 在表格中构建这些数据可能有更好的方式,尽管这是我如何接收它并且必须使用它(我不太了解它)。
UPDATE 1个
所需的结果
╔════════╦═════════════╦════════╦═════════╗
║ PREFIX ║ PREFIXCOUNT ║ FIELD2 ║ AVERAGE ║
╠════════╬═════════════╬════════╬═════════╣
║ 11-1 ║ 2 ║ Chris ║ 3.50 ║
║ 12-2 ║ 1 ║ Chris ║ 2.00 ║
║ 13-3 ║ 3 ║ Chris ║ 3.00 ║
║ 11-1 ║ 2 ║ Jacob ║ 3.50 ║
║ 12-2 ║ 1 ║ Jacob ║ 3.00 ║
║ 13-3 ║ 3 ║ Jacob ║ 3.00 ║
║ 11-1 ║ 2 ║ Mike ║ 3.50 ║
╚════════╩═════════════╩════════╩═════════╝
? – 2013-02-10 05:11:01
嗨JW, 我期望的结果将类似于下面的内容: '前缀COUNT(前缀)字段2 AVG(后缀)'' 2月11日至一日雅各3.5' '1月12日至2日雅各3' ' 13-3 3 Jacob 3' '11-1 2 Chris 3.5' '12-2 1 Chris 2' '13-3 3 Chris 3' '11-1 2 Mike 3.5' (等等文件中的其他Field2名称)' 感谢您的快速响应。 编辑*我的代码在注释中无法使用。试图将其排除。 – TheDoctor 2013-02-10 05:20:33
下面的答案如何? ':D' – 2013-02-10 05:25:35