下表假設用3個數字字段:如何根據計算列進行分組?
Images (table)
--------------
Width
Height
Amount
寬度和高度以毫米爲單位的圖像大小。現在我想創建一個關於以釐米爲單位的按尺寸分組的圖像數量的報告。這意味着我需要GROUP BY 2不存在的列。
我可以這樣做:
SELECT ROUND(Width/10,0) AS W
, ROUND(Height/10,0) AS H
, SUM(Amount) AS A
FROM IMAGES
GROUP BY Width
, Height
ORDER BY W
, H
, A
但這會做毫米到釐米的轉換隻在視圖級別,並會導致一個以上的行爲相同的尺寸。
例如
W H A
--- --- -
150 159 2
150 160 1
不會導致1類
W H A
-- -- -
15 16 3
但
W H A
-- -- -
15 16 2
15 16 1
有針對性的發動機實際上是一個的FileMaker數據庫,這不幸的是似乎並沒有在集團內部支持聚合函數BY子句。
+1:或者...更換'FROM IMAGES'用'FROM(SELECT ROUND(寬/ 10,0)AS W,ROUND(高度/ 10,0)AS H,來自圖像的數量)AS數據。然後你可以'選擇W,H'和'GROUP BY W,H'和'ORDER BY W,H'並且知道對'W,H'的所有引用總是指向派生列,而不必重複你的計算。 – MatBailie
適用於mysql,但不適用於FileMaker。似乎FileMaker既不允許GROUP BY中的函數也不允許子查詢中的表格:( – mselbach
@mselbach)您可以在FileMaker中創建表變量嗎?臨時表怎麼辦?在這種情況下,這可能是兩步操作,您可以創建除法 - 值先,然後聚合他們 – Matthew