【发布时间】:2017-10-14 06:16:46
【问题描述】:
我有以下表格:
CREATE TABLE [dbo].[Ratings](
[Id] int NOT NULL,
[CompanyId] int NOT NULL,
[UserId] int NOT NULL,
[Rating] [int] NOT NULL
CONSTRAINT [PK_dbo.Ratings] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)
CREATE TABLE [dbo].[RatingScales](
[Id] int NOT NULL,
[Rating1] [real] NOT NULL,
[Rating2] [real] NOT NULL,
[Rating3] [real] NOT NULL,
[Rating4] [real] NOT NULL,
[Rating5] [real] NOT NULL,
CONSTRAINT [PK_dbo.RatingScales] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)
然后我开始:
SELECT R.CompanyId, AVG(R.Rating) AS Average
FROM Ratings AS R
GROUP BY R.CompanyId
RatingScales 字段(Rating1、...、Rating5)包含每个范围的最小值:
Rating1 >= 1.2
Rating2 >= 2.3
...
Rating5 >= 4.6
我需要的是返回平均评分所在的相应范围。
例如:
CompanyId | Rating | Average
1 | Rating1 | 1.5
2 | Rating4 | 4
3 | Rating2 | 2.8
4 | NULL | 0
我该怎么做?
【问题讨论】:
-
请考虑在格式化文本中添加示例表数据和预期结果。同时向我们展示您当前的查询尝试
-
看链接了解一下,怎么问一个完美的问题:spaghettidba.com/2015/04/24/…
标签: tsql azure-sql-database sql-server-2016