作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设下表有 3 个数字字段:
Images (table)
--------------
Width
Height
Amount
宽度和高度是以毫米为单位的图像尺寸。现在我想创建一个关于按尺寸(以厘米为单位)分组的图像数量的报告。这意味着我必须按 2 个不存在的列进行 GROUP BY。
我能做到:
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
但这只会在 View 级别进行毫米到厘米的转换,并且会导致相同尺寸出现多行。
例如
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 数据库,不幸的是它似乎不支持 GROUP BY 子句中的聚合函数。
最佳答案
只需GROUP BY
您的计算列即可:
SELECT
ROUND(Width/10,0) as W
,ROUND(Height/10,0) as H
,COUNT(*) as A -- You may replace this with SUM(Amount) too
FROM
IMAGES
GROUP BY
ROUND(Width/10,0)
,ROUND(Height/10,0)
ORDER BY
W
,H
,A
编辑:另外,根据我对你问题的理解,你想要的是 COUNT
而不是行的 SUM
...,对吧?
关于sql - 如何对计算列进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399067/
我是一名优秀的程序员,十分优秀!