「長さ」としてエイリアス化された CASE WHEN THEN 状態 (または複数の IF ステートメントを使用できます) から計算される SELECT ステートメントがあり、結果を正しくグループ化する必要があります。SELECT は機能しているように見えますが、グループはそれらを間違ってグループ化しています。これが私の声明です:
SELECT CASE
WHEN DATEDIFF(o.EndDate, o.StartDate) < 30 THEN '<1 Month'
WHEN DATEDIFF(o.EndDate, o.StartDate) < 90 THEN '1 - 2 Months'
WHEN DATEDIFF(o.EndDate, o.StartDate) < 210 THEN '3 - 4 Months'
ELSE '>4 Months' END AS 'Length',
COUNT(DISTINCT(person.ID)) AS 'COUNT'
FROM person
INNER JOIN opportunity AS o
INNER JOIN Organization AS org
ON person.EntityID = o.id
AND O.OrganizationID = Org.ID
WHERE person.TitleID = 2
AND o.bID = 1
GROUP BY 'Length'
ORDER BY 'Length' ASC;
これは、すべての結果を「3 ~ 4 か月」にグループ化しますが、これは正しくありません。