- 1、クエリ"02"ハイコース年生情報やコースのグレードよりも"01"のコース 。SELECT A *、01_score AS b.s_score、から02_score AS c.s_score 学生Aが a.s_id Bのスコアに参加=そしてb.c_id = '01 b.s_id 'は a.s_idスコアに参加左C = ONとc.c_id c.s_id = '02'またはc.c_id = NULL WHERE b.s_score> c.s_score -これはであってもよいです書き込み SELECT A. *を、b.s_score 01_score AS、生徒Aから02_score c.s_score、Bのスコアと、スコアC WHERE a.s_id = b.s_id とa.s_id = c.s_id とb.c_id = '01 ' = '02 c.c_idと' とb.s_score> c.s_score - 2、クエリ『01』 『02』の情報とコースのグレード下のコースのグレードの学生がよりコース *を選択し、01_scoreとしてb.s_score、 。 c.s_scoreから02_score AS 生徒Aは= ON参加a.s_idスコアBとBのb.s_idを残しました。C_ID = '01' またはb.c_id = NULL 参加a.s_id = C = c.s_id ONスコアとc.c_id "02' どこb.s_score <c.s_score - 3問い合わせ60点の平均スコア以上の学生の数と学生の名前と学生成績平均点 SELECT b.s_id、b.s_name、ROUND(AVG(a.s_score)、2)からavg_score AS B学生 参加スコアA b.s_id = a.s_id ON GROUP BY b.s_id、avg_score> = 60 HAVING b.s_name; - 4、問い合わせ平均スコア未満で60点と生徒の名前、学生成績平均点の学生の数 - (スコアを含みます無結果) SELECT b.s_id、b.s_name、ROUND(AVG(a.s_score)、2)avg_score ASから 生徒Bが = b.s_id ON a.s_idスコア参加左 B、b.s_idてグループをHAVING avg_score .s_name <60 連合の SELECT a.s_id、a.s_nameは、0がAS avg_scoreから 学生 WHEREが(ではないa.s_id スコアからのSELECT DISTINCT S_ID); --5、すべての学生の学生数、学生の名前、選択科目の合計得点の合計数のクエリのすべてのコース WHEREが(ではないc.s_id a.s_id SELECT AS sum_scoreからAS sum_course、a.s_name、COUNT(b.c_id)、SUM(b.s_score) 生徒Aが a.s_id ON b.s_id =参加スコアBを左 a.s_idてグループを、a.s_name ; -の6、クエリ「李」先生某番号 先生から選択数(t_id) 「のようなt_name リー%」; - 7やお問い合わせは、学生に情報を教えるために、「ジョー・スミス」先生のことを学んだ から*を選択します。 学生は (b.s_idでa.s_id b.c_id ON =スコアBに参加 (コースからt_id = C_IDを選択 、教師t_name t_id = 'ジョン・ドウ')からSELECT) 8、「クエリを学んだことはありません-ジョー・スミス「教師は生徒の情報教える からSELECT *を cの学生 (WHEREに= b.s_id b.c_id B a.s_id ON学生スコアを参加からSELECT a.s_id 教師bを参加コースからa.c_id選択どこt_name =「a.t_id = b.t_idに、ジョン・ドウ」)) 9、「01」番に研究クエリとも学ん番号「02」 -学生はもちろん、情報が SELECT *から 学生、Bスコア、スコアC WHERE a.s_id = b.s_idとa.s_id = c.s_idとb.c_id = '01「とc.c_id = '02' ; - 10のクエリは、「01」番学んだが、情報の過程で「02」番の生徒の学ぶことがなかった からSELECT *。 学生 WHEREから(SELECT S_IDでa.s_idはスコア= '01をC_IDインクルード「)とa.s_idないスコアC_ID WHEREから(SELECT S_ID中= 『02』) - 11、すべてのコースのための学生の完全な情報を学ぶことがなかったクエリ - wendiepei文言@ 学生をSELECT S * Sから。 s1.s_id S1 = Sに参加スコアを残しましたS_ID グループSで.s_id数(s1.c_id)を有します< (SELECT COUNT(*)のコースから) - @ k1051785839的写法 *を選択し 、学生から (ではないS_ID S_IDスコアT1から選択 S_ID HAVING COUNT(*)=(CourseからSELECT COUNT(DISTINCT C_ID)))によってグループ - 12であります、クエリには、少なくとも1つのコースがあり、学生数は「01」の学生が同じ情報の学生学んできた 学生からのSELECT *は、WHEREでS_ID( SELECT a.c_idからWHERE a.c_idにおけるスコア(スコアからSELECT DISTINCT a.s_idをWHERE a.s_id = '01 A「) ); - 13、学生情報のクエリ、および『01』は他の学生の研究のまさに同じコースだった のouyang_1993文言@ - SELECT *学生。 FROM 学生 WHEREが 中をS_ID(スコアGROUP BYがSELECT FROM HAVING COUNT(S_ID)をS_ID =(S_ID #次の文は、カリキュラム学ぶ学生の'01'番号を見つけることです スコアFROM SELECT COUNT(C_ID)を S_ID = '01'を ) ) S_ID NOT IN AND( 学ん発見されたステートメントに続く#」を01学生は授業、学生を学んだことがない。そして、それらを除外 SELECTはスコアFROM S_ID WHEREは、IN(C_ID #次の文は、「01」の学生が授業に学んだことがない見つけることです スコアFROM SELECT DISTINCT C_ID WHEREは、NOT IN(C_ID #次の文は、学生が学ぶ「01」を見つけることですがもちろん SELECTはWHEREがスコアFROM = '01' S_ID C_ID ) S_ID)GROUP BYを 01学生は除外され、次の)# AND NOT中のS_ID() '01' - @ k1051785839の文言 SELECT 。T3 * FROM ( SELECT S_ID、 GROUP_CONCAT(C_ID BY ORDERをC_ID)GROUP1名前 FROM スコア WHERE S_ID <> '01' BY GROUP S_ID )T1 内部結合( SELECT GROUP_CONCATはGROUP2(C_ID BY ORDER C_ID) FROM スコア WHERE S_ID = '01' 、GROUP BYを S_ID =)T2をt1.group1 ON t2.group2 INNER JOINの学生T3 = ON t1.s_id t3.s_id - 14を、「クエリを学んだことはありませんどの先生にジョー・スミスは、」コースの学生の名前を教え WHEREから学生a.s_nameが(ではないa.s_id SELECT WHEREからSELECT S_IDは、スコア= C_ID SELECT C_IDコースから(、WHERE t_id =( WHERE t_name =からSELECT t_id教師を'ジョン・ドウ'))); --15、およびクエリの上に2人の学生が失敗したコース番号、名前や成績平均点 を選択a.s_id、a.s_name、ROUND(AVG (b.s_score)) 学生A B = a.s_id b.s_id ON参加スコア左 WHERE a.s_id(中を スコアs_score WHEREからSELECT S_ID <60カウントを有することによってグループをS_ID(1)> = 2) a.s_id GROUP、a.s_name BY - 16、 "01"のコースを取得する60未満のスコア、学生情報のスコアの降順で SELECT A *、b.c_id、からb.s_score。 生徒A、Bスコア WHERE Aを= = b.s_idとb.c_idはDESC、ORDER BY b.s_score '01「とb.s_score <60をS_ID; - 。17、そのスコアに応じて、すべての科目の平均スコアを示し、すべての学生のための平均スコアは、 選択.s_id、(スコアからs_score選択 「としてS_ID = a.s_idとC_ID = '01) 言語、 数学AS、(02 's_score WHERE S_ID = a.s_idからスコアとC_ID = SELECT)' スコアから(SELECT s_scoreをここで、S_ID = a.s_idとC_ID = '03 「)として英語、 2)平均ASスコアからグループラウンド(AVG(s_score)、平均DESC BY a.s_id ORDER BY、 -文言という場合がある飲料カップ@ SELECT a.s_id、MAX(CASE a.c_id '01' THEN END a.s_score ) 言語、 MAX(CASEは、 '02' a.s_score THEN END)数学をa.c_id MAX(CASE WHEN a.c_id '03' THEN END a.s_score) 英語、 AVG(a.s_score)オンa.s_idはb.s_id B、b.s_name FROM JOIN学生スコア= GROUP BYは、ORDER BYをa.s_id。5 DESC - 18.クエリすべての被験者は、最低スコアおよび平均スコアの最高得点:次の形式で表示:コースのID、コース名、最高スコア、最低スコア、平均スコアは、レート、中速、良いレート、優れた合格率 - 70-80、良好である:80-90、それは優れた:> = 90 - > = 60、中程度であるの通過 SELECT a.c_id、b.c_name、MAX(s_score)、MIN(s_score)、ROUND(AVG( s_score)、2)、 ROUND(100 *(SUM(ケースa.s_score> = 0終了60その後、他。1)/ SUM(ケースその後、他のa.s_score。1 0終了))、2)合格率、AS ROUND (100 *(SUM(ケース a.s_score> = 90、次いで他の1 0端)/ SUM(ケースa.s_score次いで他0,1終わり))、2)のような優れたレート ROUND(100 *(SUM(ケースa.s_score>とa.s_score = 70 <80 = 0終了次に他。1) / SUM(ケースa.s_score次いで1他0端))、2)のような適度レート、 ROUND(100 *(SUM(ケースとして2 a.s_score> = 80とa.s_score <= 90、次いで他の1 0端)/ SUM(ケースa.s_score次いで他0,1終わり))) 良いレート、 t1.s_score、 スコアから左a.c_id = b.c_id a.c_id、b.c_name BY GROUPにコースBに参加し 19、按各科成绩进行排序、并显示排名- - MySQLの没有ランク函数 a.s_idを選択し、A .c_id、 @i:= @、私は排名を保留として1 I =(ケーススコア= a.s_score @その後、@k他@i終了)ランク不保留排名、など:@k @score:= a.s_scoreスコアとして (から s_score DESC BY S_ID、C_ID、s_scoreのORDER BY S_ID、C_ID、スコア群からs_scoreを選択 A)、(@k選択:= 0、I @:= 0、スコア@:= 0)S - @ k1051785839的写法 ((選択SELECT * FROM t1.c_idを、 t1.s_score DESC順)T1) 組合 'ランク(t2.s_score> = t1.s_scoreとt2.c_id = '01スコアt2から選択数(別個t2.s_score)) t1.c_id = '01スコアT1から' @i。= @私は、iと1 + (*(選択から選択 t1.c_id、 t1.s_score、 スコアT2ここt2.s_score> = t1.s_scoreとt2.c_id = '02' )のランクから(選択数(別個t2.s_score)を スコアt1からT1を.c_id = '02' t1.s_score DESC)T2)によって順 組合 ((選択SELECT * FROM t1.c_id、 t1.s_score、 t2.s_score> = T1スコアT2から(選択数(別個t2.s_scoreを)。 s_scoreとt2.c_id = '03 ')のランク スコアT1 t1.c_id = '03'から t1.s_score DESC順)T3) - 20、查询学生的总成绩并进行排名 選択a.s_id、 @k :ランク、など=(ケーススコア@ = a.sum_scoreその後、@k他@i終了) スコアとして= a.sum_score:@score A(S_ID、GROUP BY AS DESC BY sum_score S_ID sum_score ORDERからSUM(s_score)スコアを選択)から、 (@k SELECT:= 0、I @:= 0、スコア@:0 =)S - 21は、異なるクエリであります教師は異なるコースを平均低ディスプレイ教示 SELECT a.t_id、c.t_name、a.c_id、ROUND(AVG(s_score)、2)からコースavg_scoreとして 参加スコアB = B. a.c_idを左C_IDは a.t_id c.t_id上の参加教師のC =左 DESC avg_scoreの、ORDER BYをc.t_name、a.c_id BY GROUP、a.t_idを; -学生情報22、二つの第一の3のすべてのコースのためのクエリ結果そしてもちろんグレード 選択のD *、c.s_score、からc.c_id(..ランキングcを SELECT a.s_id、a.s_score、a.c_idを、@ I:= I + 1 @スコアから順位AS、( = 0)a.c_id S = '01 'WHERE:SELECT @i a.s_score DESC BY ORDERは )Cが c.s_id = d.s_idの学生dの参加左 )Cを ここ排名2と3の間の UNION 選択D *、C排名、c.s_score、(からc.c_idは。 J @ a.s_id、a.s_score、a.c_id、選択:= @ J + 1スコアから排名などを、(@j選択:= 0)a.c_id = '02'ここで、S a.s_score DESC BY ORDERが )cは c.s_id = d.s_idに学生のDに参加左 ところ排名2と3の間の UNION セレクトD *。 (から、C排名、c.s_score、c.c_id。 K @ a.s_id、a.s_score、a.c_id、選択:=は、K @ + 1スコアから排名として、(@k選択:= 0)のa.c_id = '03'どこ a.s_score DESC BY ORDERは c.s_id = d.s_idに学生のDに参加左 ところ排名2と3の間。 コース番号、コース名、[100から85]、[85から70]、[70から60]、[23、全ての被験者の統計的セグメントの数の分数-を0-60]及びパーセンテージ 別個f.c_nameを選択し、a.c_id、b.`85-100`、 B。 百分率、c.`70-85`、C。百分率、d.`60-70`、 D。割合は、e.`0-60`、すなわち割合をスコア SELECT(参加C_ID、SUM(ケースを去ったときs_score> 85とs_score `85-100`、AS <= 100、その後、他の。1つの0終了) ROUND (100 *(SUM(ケース 2> 85 s_scoreとs_score <= 100次いで、他1 0端)/カウント(*)))のようなパーセンテージ スコアC_ID BY GROUPから)Bが= a.c_id b.c_id ON 参加左((ケースときs_score>、SUMをC_IDを選択し、他の後、70 <85 = 0終了をs_score。1)、70-85` `AS ROUND(100 *(SUM(ケースs_score> 70とs_score <= 85 1その後、他の0エンド)/ COUNT(*)) 、2)などの割合 a.c_id = c.c_id上のC)C_ID BYスコア群から SELECT(参加C_ID、SUM(ケースを去ったときs_score> 60とs_score <= 70その後、他に1 0終了) `として 60-70`、 ROUND(100 *(SUM(ケースs_score> 60とs_score <= 70、次いで他の1 0端)/カウント(*))、2)百分比として のa.c_id = d.c_idにC_ID BYスコア群)D `0-60`、として参加(C_IDを選択し、SUM(ケースs_score> = 0とs_score <= 60、次いで他の1 0端)左 ROUND(100 * (SUM(ケースs_score> = 0とs_score <= 60、次いで他の1 0端)/カウント(*))2)百分比として、 a.c_id = e.c_idにC_ID BYスコア群から)eは コースFに参加左a.c_id = f.c_idオン - 24、查询学生平均成绩及其名次 a.s_idを選択し、 @i: '不保留空缺排名'など= @ iが+ 1、 @k:=(場合@ avg_score = a.avg_sその後、@k他@i終わり) '保留空缺排名'など、 @avg_score:= avg_s '平均分'など (S_ID、ROUND(AVG選択から (s_score)を、2)avg_s DESC BY S_ID ORDER BYスコア群からavg_sとして)Aは、B;(選択@avg_score:= 0、K @:= 0 = 0、I @) - 25.トップ3つのレコードは、全ての被験者クエリ - 1.すべてのグループが選択されたテーブル結果テーブルよりも大きいB - 2電流Idは、選択されたスコアが3より小さいより大きい 、選択a.s_id a.c_id、a.s_scoreスコアA b.s_score参加スコアB = ONとa.s_score b.c_id <a.c_id左 HAVING COUNT(b.s_id)a.s_score a.s_id、a.c_id、によってグループ<3 a.c_id、a.s_scoreのDESC、ORDER BY - 26は、各コースは、学生の選択科目数である照会 SELECT C_ID、GROUP BYからのカウント(S_ID)がスコアC_ID 、27すべての唯一の2つのコースをチェックアウト-学生の学校数との名称 SELECT S_ID、WHEREでの学生のS_IDからs_name( GROUP BYからSELECT S_IDスコアは、HAVING COUNT(C_IDをS_ID)= 2); -男の子と女の子28の問い合わせの数 s_sexを選択し、(s_sex)s_sex AS COUNT BY GROUPからの学生の数 - 29学生情報、クエリ名は「風」という単語が含まれ *学生からどこs_name「のような選択 %の風%」; --30、同性愛者の生徒は、同じ名前のお問い合わせリストには、同じ名前の数と数え 、JOIN学生からSELECT a.s_name、a.s_sex、COUNT(*)を a.s_id ON学生bを!= b.s_idとa.s_name = b.s_nameとa.s_sex = b.s_sex a.s_name GROUP、a.s_sexによって - 31、1990年に生まれた学生のクエリリスト、 「1990%」のようなWHERE s_birthからSELECT s_nameの学生 - 32は、成績平均点に従って降順で結果、各コースで成績平均点を問い合わせます平均スコアは、コース番号順に応じて、同じである SELECT C_ID、ROUND(AVG(s_score)、2)DESC、C_ID ASC順avg_score AS avg_score C_IDによるグループからスコア - 33であるが、クエリの平均スコアは、学生85の全ての合計よりも大きいです学生ID、名前と学年平均点は 選択a.s_id、b.s_name、ROUND(AVG (a.s_score)、2)スコアaからavg_scoreとして B ON参加学生は左a.s_id =は> = 85 GROUP BYはHAVING avg_scoreをS_ID b.s_id 34、クエリのコースの名称「数学」と60人の学生の名前とのスコア未満のスコア- 選択a.s_name、b.s_score B(a.s_id = b.s_id WHERE b.c_id = ONから生徒のスコアに参加 してb.s_score <60 WHERE c_name =「数学」から、SELECT C_IDコース) -すべての学生コースの35、クエリや状況をスコア。 SELECT、a.s_name、a.s_id として(そして、ケースc.c_name '言語'他b.s_score 0終了)SUMを ' 言語'、 (他のb.s_score 0終了後、ケースc.c_name '数学')SUM 「数学」、など などSUM(ケースc.c_nameし、「英語」b.s_score他0終了) 「 英語」、 「アウト」としてSUM(b.s_score) B Aはa.s_idに残っ参加学生のスコアからb.s_id = 左ONは、参加コースC = Cをb.c_idC_ID a.s_id、a.s_name BY GROUP - 36、70点以上のコースグレードで任意の名前のクエリ、コース名とスコア。 SELECT a.s_name、b.c_nameは、参加スコアコース、B = b.c_id ON cはc.c_idから左c.s_score 左学生= ONはc.s_score> = 70参加c.s_id a.s_id 37、クエリもちろん失敗しました-が 選択a.s_id、a.c_id、b.c_name、a.s_scoreスコアから左にBコースに参加しますa.c_id = b.c_id上 WHERE a.s_score <60 ; 38、コース、80点以上でコースの小学校の生徒の数と名前についての第01 - SELECT a.s_id、スコアからb.s_name LEFT生徒B = a.s_id ON b.s_id JOIN WHERE a.c_id = '01'とa.s_score> 80 39の各コースの学生の数を見つける- ; C_ID BY群からSELECT COUNT(*)スコア - 40学生は選択科目の照会を許可された「ジョン・ドウ」先生、最高達成学生情報および結果 -クエリ教師上記IDに言及した コースからSELECT C_IDを、C、D WHEREは教員をc.t_idとd.t_name = = d.t_id "ジョー・スミス - (同じスコアを有していてもよい)、最も高いスコアをクエリ 選択a.s_id、a.c_id、スコアからa.s_score A MAX SELECT C_ID = '02 'から(s_score)スコア -クエリ情報が *、b.s_score、b.c_idを選択すると、学生からc.c_name 左側には、JOINスコアBをa.s_id = b.s_id JOIN左= C b.c_id c.c_idコース上 b.c_id =は(コースC、D c.t_id =教師d.t_idとd.t_name = 'ジョン・ドウ'からC_ID選択) とb.s_scoreで(MAXを選択WHEREから(s_score)は、スコア= '02「)C_ID 41、同じクエリ別のコースグレード学生の学生番号、コース番号、生徒の成績を- とは別個のb.s_id、b.c_id、b.s_score選択スコア、スコアを!B = a.c_id b.c_idとa.s_score b.s_score = - 42は、各クエリ関数で最高のパフォーマンスの上部を2ドア -退行文言 (からCOUNT(1)を選択し 、スコアBどこb.c_id = a.c_idとb.s_score> = a.s_score a.c_id BY)<= 2 ORDER --43統計選択科目(以上5つのコースのみの統計)あたりの学生数。必要な出力と選択科目数の数に応じて昇順に同じ数、コース番号場合、数に従って降順で結果 SELECT C_IDは、GROUP BYからCOUNT(*)AS合計スコアがHAVING合計> 5合計ORDER BY、C_ID ASCをC_ID - 44、科目学生数のうちの少なくとも2つのコース取得する GROUP BYからスコアSEL AS SELECT S_ID、COUNT(*)はHAVING SEL> = 2 S_ID - 45、すべてのクエリ選択科目学生情報を 学生SELECT * FROM場合S_IDに( SELECT)は、コースからHAVING COUNT(*)=(SELECT COUNT(*)をS_ID GROUP BYからスコアをS_ID) 各学生の年齢を照会、46あたり- 、生年月日によってカウントする出産の現在の月<日付の日を-当日、マイナス1歳の - 47、クエリ誕生日の週の学生は、 学生のどこ週(DATE_FORMATから選択* (NOW()、 '%Y%mの%dの'))=週(s_birth) s_birth、(DATE_FORMAT(NOW(選択 )、 '%Y') - DATE_FORMAT(s_birth、 '%Y')を- (ケースときDATE_FORMAT(NOW()、 '%m個の%のD')> DATE_FORMAT(s_birth、 '%m個の%のD')他、次に0 1つのエンド。)年齢AS) 学生から、 * yearWeek SELECT(s_birth)= yearWeek(DATE_FORMAT(NOW()、 'Y%Mは%% Dは'))WHEREから学生 WEEK(DATE_FORMAT(NOW()、 'Y%Mは%%のD'))を選択 - 48クエリ誕生日の週の学生 = +週学生WHERE(DATE_FORMAT(NOW()、 'Y%m個の%%のD'))から選択* 1週間(s_birth)。 - 49、クエリ誕生日の月の学生が 選択学生*(NOW DATE_FORMAT(()、 'Y%m個の%%のD'))= MONTH(s_birth)からMONTH WHERE - 50、クエリの誕生日の月の学生が 選ぶ*学生からどこMONTH(DATE_FORMAT NOW(() 、 '%Y%のM%のD '))+ 1 = MONTH(s_birth)