-
利用序列表處理列轉(zhuǎn)行的數(shù)據(jù) select user_name,replace(substring(substring_index(mobile,',',a_id),char_length( substring_index(mobile,',',a.id-1),',',")as mobile from tb_sequernce a cross join select user_name, concat(mobile,',') as mobile,length(mobile)-length(replace(mobile,',',"))+1 size from user1 b ) b on a.id<=b.size; 序列表:存在序列號(hào)的表。tb_sequence是序列表。 直接替換user1查看全部
-
列轉(zhuǎn)行: 單列轉(zhuǎn)多行:屬性拆分,ETL數(shù)據(jù)處理查看全部
-
使用CASE語句: SELECT SUM(CASE USER_NAME='A' THEN KILLS END) AS 'A', SUM(CASE USERNAME='B' THEN KILL END) AS 'B', SUM(CASE USERNAME='C' THEN KILL END) AS 'C' FROM A INNER JOIN B ON A.NAME=B.USERNAME; 通過CASE給滿足WHEN語句的數(shù)據(jù)返回SUM聚合函數(shù)要統(tǒng)計(jì)的數(shù)據(jù),再將SUM進(jìn)行重命名。推薦。 一般形式 SELECT NAME AS '姓名', SUM(CASE SUBJECT WHEN '數(shù)學(xué)' THEN MARK ELSE NULL END) AS '數(shù)學(xué)', SUM(CASE SUBJECT WHEN '英語' THEN MARK ELSE NULL END) AS '英語', SUM(CASE SUBJECT WHEN '語文' THEN MARK ELSE NULL END) AS '語文' FROM SUBJECT GROUP BY NAME; CASE語句中放原來表中要進(jìn)行轉(zhuǎn)換的字段(如學(xué)科),對(duì)其進(jìn)行分類(如數(shù)學(xué)、英語、語文)。 注意:要用聚合函數(shù),最后要GROUP BY。查看全部
-
行轉(zhuǎn)列: 利用自身連接來實(shí)現(xiàn): SELECT * FROM ( SELECT SUM(KILLS) AS 'A' FROM A INNER JOIN B ON A.NAME=B.USER_NAME WHERE A.NAME='A') AS A CROSS JOIN( SELECT SUM(KILLS) AS 'B' FROM A INNER JOIN B ON A.NAME=B.USER_NAME WHERE A.NAME='B') AS B CROSS JOIN( SELECT SUM(KILLS) AS 'C' FROM A INNER JOIN B ON A.NAME=B.USER_NAME WHERE A.NAME='C')AS C; 比如成績(jī) 1、分別查詢出不同同學(xué)的成績(jī),并將字段名改為同學(xué)的名字 2、通過交叉連接,將不同的語句連接起來 缺點(diǎn):是將原來查詢的結(jié)果每一行單獨(dú)查詢出來,再進(jìn)行拼接。因此每增加一個(gè)同學(xué)就增加一個(gè)SELECT語句。并且是通過交叉連接,要保證每個(gè)查詢的結(jié)果只能是一個(gè),不然沒辦法通過交叉連接實(shí)現(xiàn)轉(zhuǎn)換。查看全部
-
create table arms( id mediumint primary key auto_increment, username varchar(64), arms varchar(64), clothing varchar(64), shoe varchar(64) ); insert into arms(username,arms,clothing,shoe) values('唐僧','九環(huán)錫杖','袈裟','僧鞋'),('孫悟空','金箍棒','黃金甲','步云鞋'); select username,'arms',arms from arms union all select username,'clothing',clothing from arms union all select username,'shoe',shoe from arms;?
查看全部 -
刪除重復(fù)數(shù)據(jù),對(duì)于相同數(shù)據(jù)保留ID最大的。查看全部
-
1113412查看全部
-
cross join查看全部
-
存儲(chǔ)過程——訂單號(hào)查看全部
-
如何查詢重復(fù)數(shù)據(jù)? 利用group by 和having語句進(jìn)行判斷 select user_name ,count(*) from test group by user_name having count(*)>1查看全部
-
刪除重復(fù)數(shù)據(jù),同時(shí)保留id最大的那條記錄 delete a from user1_test a join( select user1_name count(*),max(id) as id from user1_test group by user_name having count(*) >1 )b on a.user_name = b.user_name where a.id<b.id查看全部
-
利用group by和having從句處理查詢數(shù)據(jù)是否重復(fù) select col1_name,count(*) from table1 group by col1_name having count(*) > 1查看全部
-
用sql生成特殊的序列號(hào)查看全部
-
生成序列號(hào)的方法查看全部
-
使用union進(jìn)行行列轉(zhuǎn)換查看全部
舉報(bào)