MySQL 中的字段行专列可以通过以下方法实现:
- 使用 GROUP BY 和聚合函数将相同值的行合并到一起,并将它们作为新行的列。
例如,假设有一个名为 orders 的表格,其中包含订单数量和客户 ID:
SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id;
结果将会是这样:
customer_id | order_count |
---|---|
1 | 5 |
2 | 3 |
3 | 10 |
在这种情况下,每个不同的客户 ID 都会成为新行的一列,而订单数量将作为该客户的值显示在该列中。
- 使用 CASE 语句创建多个条件,以在查询结果中生成对应的新行。
例如,假设有一个名为 orders 的表格,其中包含订单数量、客户 ID 和订单类型:
SELECT customer_id,
SUM(CASE WHEN order_type = 'A' THEN order_count ELSE 0 END) AS type_a_orders,
SUM(CASE WHEN order_type = 'B' THEN order_count ELSE 0 END) AS type_b_orders
FROM orders
GROUP BY customer_id;
结果将会是这样:
customer_id | type_a_orders | type_b_orders |
---|---|---|
1 | 3 | 2 |
2 | 0 | 3 |
3 | 7 | 3 |
在这种情况下,每个不同的客户 ID 都会成为新行的一列,而根据订单类型计算出的不同订单数量将分别作为该客户的值显示在对应的列中。
以上是两种常见的 MySQL 查询字段行专列的方法。