欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 數據表 橫縱轉換

呂致盈1年前9瀏覽0評論

MySQL 數據表橫縱轉換是指將一張表的行轉換為列或者將列轉換為行。這在數據分析、查詢及數據可視化時非常有用。

以下是一個MySQL表:

CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
INSERT INTO my_table VALUES (1, 'Alice', 25, 'F');
INSERT INTO my_table VALUES (2, 'Bob', 30, 'M');
INSERT INTO my_table VALUES (3, 'Charlie', 35, 'M');
INSERT INTO my_table VALUES (4, 'David', 40, 'M');
INSERT INTO my_table VALUES (5, 'Eva', 45, 'F');

首先,我們使用GROUP_CONCAT函數將一列的值合并成一個字符串:

SELECT 
GROUP_CONCAT(name SEPARATOR ',') AS names 
FROM 
my_table;

這將返回一個新的表,由一個名為names的列組成。這個列包含了所有的名字連接在一起的字符串。

接下來,我們使用PIVOT函數將一個列作為行傳遞進去:

SELECT
GROUP_CONCAT(IF(gender = 'F', age, NULL)) AS female_ages,
GROUP_CONCAT(IF(gender = 'M', age, NULL)) AS male_ages
FROM
my_table;

這將返回一個表,其中列female_ages包含了所有女性的年齡,列male_ages包含了所有男性的年齡。我們使用IF函數過濾出符合條件的行,并使用NULL表示不符合條件的行。

最后,我們可以使用CROSS JOIN將兩個表組合在一起:

SELECT 
names, female_ages, male_ages 
FROM 
(SELECT GROUP_CONCAT(name SEPARATOR ',') AS names FROM my_table) t1 
CROSS JOIN 
(SELECT
GROUP_CONCAT(IF(gender = 'F', age, NULL)) AS female_ages,
GROUP_CONCAT(IF(gender = 'M', age, NULL)) AS male_ages
FROM
my_table) t2;

這將返回一個表,其中列names包含了所有名字連接在一起的字符串,列female_ages包含了所有女性的年齡,列male_ages包含了所有男性的年齡。

總的來說,MySQL 數據表橫縱轉換可以幫助我們更好地分析和呈現數據,使得數據處理更加高效和準確。