首页 >数据库 >mysql教程 >如何在 SQL 中使用多列(user_id 和 lang)透视数据?

如何在 SQL 中使用多列(user_id 和 lang)透视数据?

DDD
DDD原创
2024-12-18 02:34:13459浏览

How to Pivot Data Using Multiple Columns (user_id and lang) in SQL?

透视多列数据

在提供的数据集中,当前使用 user_id 列作为主要标识符来透视数据。然而,期望的结果是使用 user_id 和 lang 作为主要标识符来透视数据。

为了实现这一点,可以使用 PIVOT 函数。 PIVOT 函数采用聚合值并将其按一个或多个列进行分组,为每个组创建一个新列。在这种情况下,组织和职位列将按 lang 进行聚合和分组。

SQL 查询

以下 SQL 查询演示如何使用多个列对数据进行透视:

SELECT *
FROM source
PIVOT (
    MIN(org) AS org,
    MIN(position) AS position
    FOR lang IN('EN' AS en, 'FI' AS fi, 'SV' AS sv)
);
  • SELECT 子句从源表中检索所有列。
  • FROM 子句指定源表作为数据的来源。
  • PIVOT 子句执行透视操作:

    • MIN(org) 计算每个组的 org 列的最小值.
    • MIN(position) 计算每个组的位置列的最小值。
    • FOR lang IN('EN' AS en, 'FI' AS fi, 'SV' AS sv) 定义分组列及其对应的别名。

结果

查询的结果是一个包含以下列的数据透视数据集:

  • user_id:用户标识符。
  • org_en:与英语语言偏好关联的组织。
  • position_en:与英语语言偏好关联的职位。
  • org_fi:与芬兰语言偏好关联的组织.
  • position_fi:与芬兰语语言偏好相关的位置。
  • org_sv:与瑞典语语言偏好相关的组织。
  • position_sv:与瑞典语语言偏好相关的职位。

以上是如何在 SQL 中使用多列(user_id 和 lang)透视数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn