Я новичок в SQL, и я немного пытаюсь проанализировать некоторые данные.У меня есть таблица [01-Jan-UserDefined], которая представляет собой набор данных ветра с 20-миллиметровыми линиями.Я создал таблицу [WINDDIR], которая генерирует сводную таблицу с соответствующими статистическими данными, считая строки данных по скорости ветра и направлению ветра.
Код разделяется по столбцам (скорость ветра), но не может быть разделен по направлению ветра.
Есть советы, как решить эту проблему?Thx
UPDATE WINDDIR
SET [0WS1] = counter1,
[1WS2] = counter2,
[2WS3] = counter3,
FROM (SELECT COUNT(CASE WHEN [01-Jan-UserDefined].[WindRel m s ] <=1 then 1 else null end) AS counter1,
COUNT(CASE WHEN [01-Jan-UserDefined].[WindRel m s ] >1 AND [01-Jan-UserDefined].[WindRel m s ] <= 2 then 1 else null end) AS >counter2,
COUNT(CASE WHEN [01-Jan-UserDefined].[WindRel m s ] >2 AND [01-Jan-UserDefined].[WindRel m s ] <= 3 then 1 else null end) AS counter3,
from [01-Jan-UserDefined]) h
Пример данных:
SET DATEFORMAT DMY
DECLARE @Table AS TABLE ([UTC] DATETIME
, [WindDirRel deg] INT
, [WindRel m s] DECIMAL(18, 2)
, [WINDDIR SECTOR] NVARCHAR(3)
, [WINDDIR SECTOR NO] INT);
INSERT INTO @Table
( UTC
, [WindDirRel deg]
, [WindRel m s]
, [WINDDIR SECTOR]
, [WINDDIR SECTOR NO])
VALUES ('27/01/2018 08:09', 127, 3.96, 'ESE', 6)
, ('27/01/2018 08:09', 125, 4.06, 'ESE', 6)
, ('27/01/2018 08:09', 125, 4.06, 'ESE', 6)
, ('13/01/2018 22:01', 13, 10.39, 'N ', 1)
, ('13/01/2018 22:01', 12, 10.13, 'N ', 1)
, ('13/01/2018 22:01', 12, 10.44, 'N ', 1);
SELECT * FROM @table
Фактический вывод:
WINDDIR SECTOR 0WS1 1WS2 2WS3 3W4 4W5 5W6 6W7 7W8 8W9 9W10 10W
N 0 0 0 1 2 0 0 0 0 0 3
NNE 0 0 0 1 2 0 0 0 0 0 3
NE 0 0 0 1 2 0 0 0 0 0 3
ENE 0 0 0 1 2 0 0 0 0 0 3
ESE 0 0 0 1 2 0 0 0 0 0 3
Желаемый вывод:
WINDDIR SECTOR 0WS1 1WS2 2WS3 3W4 4W5 5W6 6W7 7W8 8W9 9W10 10W
N 0 0 0 0 0 0 0 0 0 0 3
NNE 0 0 0 0 0 0 0 0 0 0 0
NE 0 0 0 0 0 0 0 0 0 0 0
ENE 0 0 0 0 0 0 0 0 0 0 0
ESE 0 0 0 1 2 0 0 0 0 0 0