AltitudeBucketの計算カラムを使用できます。これは自動的に計算されます。
この場合、計算された列としてAltitudeBucketを使用するということは、その計算をWHERE句で使用できることを意味します。
表を作成して移入します。
CREATE TABLE dbo.TrackPoint
(
TrackPointID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
CrossingPoint nvarchar(50) NOT NULL,
AltitudeFeet int NOT NULL
CHECK (AltitudeFeet BETWEEN 1 AND 60000),
AltitudeBucket AS (AltitudeFeet/100) * 100 PERSISTED NOT NULL
);
GO
INSERT INTO dbo.TrackPoint (CrossingPoint, AltitudeFeet)
VALUES
(N'Paris', 12772),
(N'Paris', 12765),
(N'Paris', 32123),
(N'Toulouse', 5123),
(N'Toulouse', 6123),
(N'Toulouse', 6120),
(N'Lyon', 15000),
(N'Lyon', 15010);
テーブルの内容を表示します。
SELECT *
FROM dbo.TrackPoint;
まとめカウントを計算するSELECTクエリを実行します。
SELECT CrossingPoint, AltitudeBucket, COUNT(*) AS 'Count'
FROM dbo.TrackPoint
GROUP BY CrossingPoint, AltitudeBucket
ORDER BY CrossingPoint, AltitudeBucket;
あなたは高度範囲を表示したい場合。
SELECT CrossingPoint, AltitudeBucket, CAST(AltitudeBucket AS nvarchar) + N'-' + CAST(AltitudeBucket + 99 AS nvarchar) AS 'AltitudeBucketRange', COUNT(*) AS 'Count'
FROM dbo.TrackPoint
GROUP BY CrossingPoint, AltitudeBucket
ORDER BY CrossingPoint, AltitudeBucket;
あなたはこれまでどのようなSQLコードを実装しているのですか?プロセスを自動化する場合は、まずプロセスがどのように手動で動作するかを知ることが不可欠です。 –
質問を編集して、サンプルデータをDDL + DMLおよび希望の結果として追加してください。 –
あなたの質問は何ですか? –