給定一個數據查詢整個文件中設置類似於:而是通過單獨的數據,由每個唯一的列元素分組
╔═════════╦════════╦════════╗
║ 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