【发布时间】:2021-11-01 13:50:50
【问题描述】:
我正在编写一个统计查询,其中值在SELECT、GROUP BY 和ORDER BY 中重复。必须重复相同的值使得读取和修改查询变得困难。
如何避免在下面的查询中重复FLOOR(COALESCE(LEN(Body), 0) / 100) 3-4 次。
SELECT FLOOR(COALESCE(LEN(Body), 0) / 100) * 100 as BodyLengthStart,
(FLOOR(COALESCE(LEN(Body), 0) / 100) + 1) * 100 - 1 as BodyLengthEnd,
COUNT(*) as MessageCount
FROM [Message]
GROUP BY FLOOR(COALESCE(LEN(Body), 0) / 100)
ORDER BY FLOOR(COALESCE(LEN(Body), 0) / 100)
查询的输出是消息的数量,由它们拥有的数百个字符组成。
| BodyLengthStart | BodyLengthEnd | MessageCount |
|---|---|---|
| 0 | 99 | 130 |
| 100 | 199 | 76 |
| 200 | 299 | 36 |
【问题讨论】:
-
如果可能,请提供少量样本数据和预期输出。
-
交叉申请....
标签: sql sql-server tsql dry