国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

行列轉(zhuǎn)化【附加面試題】

這篇具有很好參考價(jià)值的文章主要介紹了行列轉(zhuǎn)化【附加面試題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在MySQL中,行列轉(zhuǎn)換是一種常見的操作。它包括行轉(zhuǎn)列和列轉(zhuǎn)行兩種情況。

  1. 行轉(zhuǎn)列:行轉(zhuǎn)列是將表中的某些行轉(zhuǎn)換成列,以提供更為清晰、易讀的數(shù)據(jù)視圖。例如,假設(shè)我們有一個(gè)包含科目和分?jǐn)?shù)的表,我們可以使用SUM和CASE語(yǔ)句將每個(gè)科目的分?jǐn)?shù)轉(zhuǎn)換為單獨(dú)的列。此外,從MySQL 8.0版本開始,還提供了PIVOT函數(shù)來實(shí)現(xiàn)行轉(zhuǎn)列的操作。例如:
    SELECT aggregated_column, [pivot_value_1], [pivot_value_2], ..., [pivot_value_n] 
    FROM (select...) AS source_table 
    PIVOT ( aggregate_function (column_for_aggregation) 
    FOR column_for_pivot IN ([pivot_value_1], [pivot_value_2], ..., [pivot_value_n]) ) AS pivot_table;
    
  2. 列轉(zhuǎn)行:列轉(zhuǎn)行則是將表中的某些列轉(zhuǎn)換成行,每行包含一列的值。具體的操作方法包括使用聚合函數(shù)、group_concat函數(shù)或動(dòng)態(tài)SQL語(yǔ)句塊等。例如,可以使用GROUP_CONCAT函數(shù)將某一列的值拼接成一個(gè)字符串,然后用聚合函數(shù)進(jìn)行分組。
測(cè)試題:
DROP TABLE IF EXISTS `stu`;
CREATE TABLE `stu`  (
  `sname` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `sub` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `score` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of stu
-- ----------------------------
INSERT INTO `stu` VALUES ('zs', 'chinese', '100');
INSERT INTO `stu` VALUES ('zs', 'math', '99');
INSERT INTO `stu` VALUES ('zs', 'english', '98');
INSERT INTO `stu` VALUES ('li', 'chinese', '80');
INSERT INTO `stu` VALUES ('li', 'math', '89');
INSERT INTO `stu` VALUES ('li', 'english', '88');
INSERT INTO `stu` VALUES ('ww', 'chinese', '70');
INSERT INTO `stu` VALUES ('ww', 'math', '79');
INSERT INTO `stu` VALUES ('ww', 'english', '78');

SET FOREIGN_KEY_CHECKS = 1;

初始化數(shù)據(jù):?

行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

現(xiàn)在進(jìn)行行列轉(zhuǎn)換:

	select sname,
	case sub when "chinese" then score end "語(yǔ)文",
	case sub when "math" then score end "數(shù)學(xué)",
	case sub when "english" then score end "英語(yǔ)"
	from stu;

?行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

?現(xiàn)在進(jìn)行分組統(tǒng)計(jì),然后合并:

	select sname,
	max(case sub when "chinese" then score end) "語(yǔ)文",
	min(case sub when "math" then score end) "數(shù)學(xué)",
	avg(case sub when "english" then score end) "英語(yǔ)"
	from stu
	GROUP BY sname;

行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

現(xiàn)在行列轉(zhuǎn)化已經(jīng)完成!

行轉(zhuǎn)化為列:

小結(jié):case [列名] when [條件] then [數(shù)據(jù)] end

面試題1:
人員情況表(employee)中字段包括,員工號(hào)(ID),姓名(name),年齡(age),文化程度(wh):
包括四種情況(本科以上,大專,高中,初中以下),
現(xiàn)在我要根據(jù)年齡字段查詢統(tǒng)計(jì)出:
表中文化程度為本科以上,大專,高中,初中以下,各有多少人,占總?cè)藬?shù)多少。
結(jié)果如下A:
學(xué)歷     年齡  人數(shù)  百分比
本科以上  20    34     14
大專      20    33    13
高中      20    33    13
初中以下  20    100    40
本科以上  21    50     20
。。。。。。
SQL 查詢語(yǔ)句如何寫?

create table employee(id int primary key auto_increment,
                      name varchar(20),
                      age int(2),
                      wh varchar(20)
                     ) ;

insert into employee(id,name,age,wh) values (null,'a',20,'本科以上') ;
insert into employee(id,name,age,wh) values (null,'b',20,'本科以上') ;
insert into employee(id,name,age,wh) values (null,'c',21,'本科以上') ;
insert into employee(id,name,age,wh) values (null,'d',20,'本科以上') ;
insert into employee(id,name,age,wh) values (null,'e',20,'大專') ;
insert into employee(id,name,age,wh) values (null,'e',21,'大專') ;
insert into employee(id,name,age,wh) values (null,'e',21,'高中') ;
insert into employee(id,name,age,wh) values (null,'e',20,'高中') ;
insert into employee(id,name,age,wh) values (null,'e',20,'初中以下') ;

?起始數(shù)據(jù):

行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

通過wh[文化]、age[年齡]分組,即可統(tǒng)計(jì)出來:?

select wh '學(xué)歷',age '年齡',count(*) '人數(shù)', round((count(*)/(select count(0) from employee)) * 100)  '百分比'
from employee 
GROUP BY wh ,age
ORDER BY age;

行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

面試題2:
-- 8:00--12:00 為遲到, 12:00--18:00 為早退
-- 打卡表 card
 create table card(
   cid int(10),
   ctime timestamp ,
   cuser int(10)
 );
 
--  人員表 person
create table person(
	pid int(10),
	name varchar(10)
) ;

-- 插入人員表的數(shù)據(jù)
insert into person values(1,'a');
insert into person values(2,'b');

-- 插入打卡的數(shù)據(jù)
insert into card values(1,'2009-07-19 08:02:00',1);
insert into card values(2,'2009-07-19 18:02:00',1);
insert into card values(3,'2009-07-19 09:02:00',2);
insert into card values(4,'2009-07-19 17:02:00',2);
insert into card values(5,'2009-07-20 08:02:00',1);
insert into card values(6,'2009-07-20 16:02:00',1);
insert into card values(7,'2009-07-20 07:02:00',2);
insert into card values(8,'2009-07-20 20:02:00',2);

--  查詢 遲到 早退的員工姓名?
查詢結(jié)果如下:
工號(hào)     姓名    打卡日期     上班打卡    下班打卡        遲到    早退
1         a      2009-07-19   08:02:00    18:02:00  			 是      否
1         a      2009-07-20   08:02:00    16:02:00 				 是      是
2         b      2009-07-19   09:02:00    17:02:00			   是      是

初始化表:?

?行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android

-- 先查出每一個(gè)員工打卡的時(shí)間
select p.*,c.ctime
from person p join card c on c.cuser = p.pid;

-- 將日期格式化
select p.pid "工號(hào)",p.name "姓名",DATE_FORMAT(c.ctime,'%y-%m-%d') "打卡日期",DATE_FORMAT(c.ctime,'%h:%i:%s') "打卡時(shí)間"
from person p join card c on c.cuser = p.pid;

-- 將日期分離成上下午
select p.pid "工號(hào)",p.name "姓名",DATE_FORMAT(c.ctime,'%y-%m-%d') "打卡日期",DATE_FORMAT(c.ctime,'%h:%i:%s') "打卡時(shí)間"
from person p join card c on c.cuser = p.pid

行列轉(zhuǎn)化【附加面試題】,MySQL練習(xí),android文章來源地址http://www.zghlxwxcb.cn/news/detail-800770.html

到了這里,關(guān)于行列轉(zhuǎn)化【附加面試題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【面試刷題】——C++四種類型轉(zhuǎn)化

    C++支持多種類型轉(zhuǎn)換操作,其中包括四種主要類型轉(zhuǎn)換方式: 隱式類型轉(zhuǎn)換是自動(dòng)發(fā)生的類型轉(zhuǎn)換,由編譯器自動(dòng)完成。 它用于處理不同數(shù)據(jù)類型之間的運(yùn)算,例如將整數(shù)和浮點(diǎn)數(shù)相加時(shí),整數(shù)會(huì)隱式地轉(zhuǎn)換為浮點(diǎn)數(shù)。 例如,將int轉(zhuǎn)換為double或?qū)loat轉(zhuǎn)換為int都是隱式類型

    2024年02月07日
    瀏覽(24)
  • 【SQL應(yīng)知應(yīng)會(huì)】行列轉(zhuǎn)換(二)? MySQL版

    【SQL應(yīng)知應(yīng)會(huì)】行列轉(zhuǎn)換(二)? MySQL版

    歡迎來到愛書不愛輸?shù)某绦蛟车牟┛? 本博客致力于知識(shí)分享,與更多的人進(jìn)行學(xué)習(xí)交流 本文收錄于SQL應(yīng)知應(yīng)會(huì)專欄, 本專欄 主要用于記錄對(duì)于數(shù)據(jù)庫(kù)的一些學(xué)習(xí),有基礎(chǔ)也有進(jìn)階,有MySQL也有Oracle

    2024年02月11日
    瀏覽(25)
  • 【SQL應(yīng)知應(yīng)會(huì)】行列轉(zhuǎn)換(一)? MySQL版

    【SQL應(yīng)知應(yīng)會(huì)】行列轉(zhuǎn)換(一)? MySQL版

    歡迎來到愛書不愛輸?shù)某绦蛟车牟┛? 本博客致力于知識(shí)分享,與更多的人進(jìn)行學(xué)習(xí)交流 本文收錄于SQL應(yīng)知應(yīng)會(huì)專欄, 本專欄 主要用于記錄對(duì)于數(shù)據(jù)庫(kù)的一些學(xué)習(xí),有基礎(chǔ)也有進(jìn)階,有MySQL也有Oracle 先建一個(gè)表 練習(xí) 三種插入 修改列類型 1.1為何進(jìn)行行轉(zhuǎn)列? 現(xiàn)實(shí)中用到的一

    2024年02月12日
    瀏覽(20)
  • 實(shí)現(xiàn)Android APK加固:代碼加密隱藏、資源加密隱藏、so庫(kù)加密隱藏。兼容unity引擎。附加固工具鏈接。

    0.1.可自動(dòng)批量循環(huán)改包 改包包括:自動(dòng)換包名(可選),自動(dòng)改類,清單處理等 使用場(chǎng)景:原包為母包,爭(zhēng)取處理出來的包沒有容易被標(biāo)記的地方 0.2.可自動(dòng)批量循環(huán)加固,改包后自動(dòng)加固 使用場(chǎng)景:原包為母包,爭(zhēng)取處理出來的包每個(gè)包都不一樣 0.3 改包加固效果 原包代碼不可見,原包

    2024年02月09日
    瀏覽(24)
  • Android中本地圖片和bitmap的相互轉(zhuǎn)化

    將Bitmap轉(zhuǎn)換為圖片 將本地圖片轉(zhuǎn)為bitmap 通過流的方式 通過圖片路徑的方式 該方法直接傳文件路徑的字符串,即可將指定路徑的圖片讀取到Bitmap對(duì)象。 如果是資源文件的話

    2024年02月12日
    瀏覽(21)
  • Android Studio:一個(gè)簡(jiǎn)單的米英尺單位轉(zhuǎn)化app的實(shí)現(xiàn)過程

    Android Studio:一個(gè)簡(jiǎn)單的米英尺單位轉(zhuǎn)化app的實(shí)現(xiàn)過程

    ??Android Studio 專欄正在持續(xù)更新中,案例的原理圖解析、各種模塊分析??這里都有哦,同時(shí)也歡迎大家訂閱專欄,獲取更多詳細(xì)信息哦??? ?個(gè)人主頁(yè):零小唬的博客主頁(yè) ??歡迎大家 ??點(diǎn)贊 ??評(píng)論 ??收藏 ?作者簡(jiǎn)介:20級(jí)計(jì)算機(jī)專業(yè)學(xué)生一枚,來自寧夏,想從事前

    2023年04月09日
    瀏覽(18)
  • 將mysql的腳本轉(zhuǎn)化為oracle的腳本攻略

    將mysql的腳本轉(zhuǎn)化為oracle的腳本攻略

    語(yǔ)法差異:MySQL和Oracle SQL之間存在一些語(yǔ)法差異,例如日期函數(shù)、字符串處理、聚合函數(shù)等。在轉(zhuǎn)換腳本時(shí)需要將這些差異進(jìn)行適當(dāng)?shù)恼{(diào)整。 數(shù)據(jù)類型不一致:MySQL和Oracle使用不同的數(shù)據(jù)類型,因此需要確保在轉(zhuǎn)換腳本時(shí)使用了正確的數(shù)據(jù)類型。 將MySQL特定的函數(shù)或轉(zhuǎn)

    2024年02月14日
    瀏覽(14)
  • 前端面試練習(xí)24.3.5

    進(jìn)入一個(gè)初始化好的vue項(xiàng)目 下載安裝webpack相關(guān)依賴包/插件 npm install --save-dev webpack webpack-cli webpack-dev-server 安裝一些相關(guān)的loader,比如vue-loader,babel-loader,css-loader等 創(chuàng)建webpack.config.js文件,進(jìn)行相關(guān)配置 文件內(nèi)容如下 初始化參數(shù) :從配置?件和 Shell 語(yǔ)句中讀取與合并參數(shù),

    2024年03月10日
    瀏覽(16)
  • 24道Python面試練習(xí)題

    答:在函數(shù)式編程中,函數(shù)是基本單位,變量只是一個(gè)名稱,而不是一個(gè)存儲(chǔ)單元。除了匿名函數(shù)外,Python還使用fliter(),map(),reduce(),apply()函數(shù)來支持函數(shù)式編程。 答:匿名函數(shù),也就是lambda函數(shù),通常用在函數(shù)體比較簡(jiǎn)單的函數(shù)上。匿名函數(shù)顧名思義就是函數(shù)沒有名字,因

    2023年04月20日
    瀏覽(18)
  • 【面試高頻算法解析】算法練習(xí)3 雙指針

    【面試高頻算法解析】算法練習(xí)3 雙指針

    本專欄旨在通過分類學(xué)習(xí)算法,使您能夠牢固掌握不同算法的理論要點(diǎn)。通過策略性地練習(xí)精選的經(jīng)典題目,幫助您深度理解每種算法,避免出現(xiàn)刷了很多算法題,還是一知半解的狀態(tài) 二分查找 回溯(Backtracking) 雙指針 滑動(dòng)窗口 深度優(yōu)先搜索 廣度優(yōu)先搜索 貪心算法 單調(diào)

    2024年01月23日
    瀏覽(53)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包