将 column1 转换为标题和 column2 作为行
Pivot column1 into the headings and column2 as rows
我对在 SQL 中使用 pivot 还很陌生,想尝试一下 pivot 这个。
任何帮助,将不胜感激。 (罗斯文数据库)
我正在尝试将姓氏置于 TotalOrders 之上。
姓氏在 column1 中,总订单在 column2
lastname TotalOrders
---------------------
Buchanan 42
Callahan 104
Davolio 123
Dodsworth 43
Fuller 96
King 72
Leverling 127
Peacock 156
Suyama 67
/*正在尝试做:*/
[lastname] [Buchanan] [Callahan]...
TotalOrders 42 104 ...
/这是我目前的情况。/
[代码]
SELECT lastname, COUNT(*) TotalOrders
FROM employees join orders
ON employees.employeeid = orders.employeeid
GROUP BY lastname
PIVOT
(
COUNT(TotalOrders)
FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth]
,[Fuller], [King], [Leverling], [Peacock], [Suyama])
) AS P;
[/代码]
你很接近。将连接查询放在子查询中,并在数据透视表中使用 MAX(或 MIN)。
select *
from (
SELECT lastname, COUNT(*) TotalOrders
FROM employees join orders
ON employees.employeeid = orders.employeeid
GROUP BY lastname
) t
PIVOT
(
MAX(TotalOrders)
FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth]
,[Fuller], [King], [Leverling], [Peacock], [Suyama])
) AS P;
我对在 SQL 中使用 pivot 还很陌生,想尝试一下 pivot 这个。 任何帮助,将不胜感激。 (罗斯文数据库)
我正在尝试将姓氏置于 TotalOrders 之上。 姓氏在 column1 中,总订单在 column2
lastname TotalOrders
---------------------
Buchanan 42
Callahan 104
Davolio 123
Dodsworth 43
Fuller 96
King 72
Leverling 127
Peacock 156
Suyama 67
/*正在尝试做:*/
[lastname] [Buchanan] [Callahan]...
TotalOrders 42 104 ...
/这是我目前的情况。/ [代码]
SELECT lastname, COUNT(*) TotalOrders
FROM employees join orders
ON employees.employeeid = orders.employeeid
GROUP BY lastname
PIVOT
(
COUNT(TotalOrders)
FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth]
,[Fuller], [King], [Leverling], [Peacock], [Suyama])
) AS P;
[/代码]
你很接近。将连接查询放在子查询中,并在数据透视表中使用 MAX(或 MIN)。
select *
from (
SELECT lastname, COUNT(*) TotalOrders
FROM employees join orders
ON employees.employeeid = orders.employeeid
GROUP BY lastname
) t
PIVOT
(
MAX(TotalOrders)
FOR lastname IN ([Buchanan], [Callahan], [Davolio], [Dodsworth]
,[Fuller], [King], [Leverling], [Peacock], [Suyama])
) AS P;