Tôi biết nhiều bạn đã quan sát hành vi này, nhưng tôi tự hỏi liệu có ai có thể giải thích lý do tại sao không. Khi tôi tạo ra một bảng nhỏ để tạo ra một ví dụ về cách sử dụng các chức năng trục, tôi nhận được kết quả tôi mong đợi:Tại sao trục xoay với cột "phụ" không kết hợp các kết quả
CREATE TABLE dbo.AverageFishLength
(
Fishtype VARCHAR(50) ,
AvgLength DECIMAL(8, 2) ,
FishAge_Years INT
)
INSERT INTO dbo.AverageFishLength
(Fishtype, AvgLength, FishAge_Years)
VALUES ('Muskie', 32.75, 3),
('Muskie', 37.5, 4),
('Muskie', 39.75, 5),
('Walleye', 16.5, 3),
('Walleye', 18.25, 4),
('Walleye', 20.0, 5),
('Northern Pike', 20.75, 3),
('Northern Pike', 23.25, 4),
('Northern Pike', 26.0, 5);
Dưới đây là truy vấn trục:
SELECT Fishtype ,
[3] AS [3 Years Old] ,
[4] AS [4 Years Old] ,
[5] AS [5 Years Old]
FROM dbo.AverageFishLength PIVOT(SUM(AvgLength)
FOR FishAge_Years IN ([3], [4], [5])) AS PivotTbl
Dưới đây là kết quả:
Tuy nhiên, nếu tôi có thể tạo bảng với một cột sắc, kết quả được chia thành dòng riêng biệt:
DROP TABLE dbo.AverageFishLength
CREATE TABLE dbo.AverageFishLength
(
ID INT IDENTITY(1,1) ,
Fishtype VARCHAR(50) ,
AvgLength DECIMAL(8, 2) ,
FishAge_Years INT
)
INSERT INTO dbo.AverageFishLength
(Fishtype, AvgLength, FishAge_Years)
VALUES ('Muskie', 32.75, 3),
('Muskie', 37.5, 4),
('Muskie', 39.75, 5),
('Walleye', 16.5, 3),
('Walleye', 18.25, 4),
('Walleye', 20.0, 5),
('Northern Pike', 20.75, 3),
('Northern Pike', 23.25, 4),
('Northern Pike', 26.0, 5);
Cùng truy vấn chính xác:
SELECT Fishtype ,
[3] AS [3 Years Old] ,
[4] AS [4 Years Old] ,
[5] AS [5 Years Old]
FROM dbo.AverageFishLength PIVOT(SUM(AvgLength)
FOR FishAge_Years IN ([3], [4], [5])) AS PivotTbl
kết quả khác nhau:
Nó xuất hiện với tôi rằng cột ID đang được sử dụng trong truy vấn, mặc dù nó không xuất hiện trong tất cả các truy vấn. Nó gần giống như nó được bao gồm trong truy vấn, nhưng không được hiển thị trong tập kết quả.
Có ai giải thích tại sao điều này xảy ra không?
Tôi nên thêm rằng tôi biết cách sử dụng nó, sử dụng truy vấn phụ hoặc row_number hơn ... Tôi thực sự chỉ quan tâm đến lý do tại sao nó xảy ra. –
Câu hỏi này khiến tôi đói – billinkc