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

mysql 動態(tài)橫表轉(zhuǎn)縱表

劉姿婷2年前12瀏覽0評論

MySQL數(shù)據(jù)庫中的橫表就是指豎向排列的數(shù)據(jù)通過類似于EXCEL中的'行列轉(zhuǎn)換'操作,將其變更為橫向排列的表格形式。而動態(tài)橫表轉(zhuǎn)置又稱為“動態(tài)透視表”,是指在沒有固定列的情況下,將豎向數(shù)據(jù)轉(zhuǎn)化為動態(tài)的橫向表格形式。這樣可以方便地進(jìn)行數(shù)據(jù)的統(tǒng)計和分析。

CREATE PROCEDURE SP_GET_PERSON_RECORDS(IN DATEFROM date, IN DATETO date)
BEGIN
DECLARE SQLString varchar(4000);
DECLARE Rows varchar(250);
DECLARE result varchar(4000);
SET @SQLString = '';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(date = ''',
date,
''', COUNT, 0)) AS ',
DATE_FORMAT(date, '%d-%m-%Y')
)
) INTO @Columns 
FROM
person_records
WHERE
date BETWEEN DATEFROM AND DATETO;
SET @SQLString = CONCAT(
'SELECT name, ',
@Columns,
' FROM person_records 
WHERE date BETWEEN ''',
DATEFROM,
''' AND ''',
DATETO, '''
GROUP BY name
');
PREPARE stmt FROM @SQLString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END

以上代碼中定義了一個存儲過程,用于將給定日期內(nèi)的人員的記錄轉(zhuǎn)換為動態(tài)的橫向表格形式。通過將記錄行的“日期”列中的不同日期作為“列”的名稱,并使用計數(shù)器統(tǒng)計值進(jìn)行填充,最后將每個人員的匯總轉(zhuǎn)換到行集中,這個過程實現(xiàn)了橫向表格的轉(zhuǎn)換。存儲過程接受兩個參數(shù),即DATETFROM和DATETO,其將提取此日期范圍內(nèi)的所有記錄并生成動態(tài)橫向表格。

上一篇mysql 包含
下一篇mysql 動畫