skillup

技術ブログ

Database

SQL問題

投稿日:

今までやったSQL問題などのまとめ。定期的にやる予定です・・

自分用なのでテーブルデータとかあったりなかったりいい加減です(汗)

SQLドリル

問題1

nameとageで構成されたテーブルがあるとして、年代ごとの人数を出したいときなど(例えば未成年,20~69,70以上に分けたいときは下記のSQLで一発)

問題2

pcode(郵便番号)とdistrict_name(場所の名前)があるテーブルである郵便番号(41300003)の合致度が高いもののランキングを出す

問題3

下記テーブルがあり
cust_idごとにseqがMAXのpriceとMINのpriceの差分を求めよ
テーブル名 receipts
cust_id seq price
A 1 500
A 2 1000
A 3 700
B 5 100
B 6 50000
B 7 300
B 9 200
B 12 1000
C 10 600
C 20 100
C 45 200
C 70 50
D 3 2000

問題4
下記テーブルがあり
より古い年のデータが存在しない場合 NULL
直近の年のデータより売り上げが伸びた場合:+
直近の年のデータより売り上げが下がった場合:-
直近の年のデータと売り上げが同じ場合:=
と表記
company year sale
A 2002 52
A 2004 54
A 2005 84
B 2006 15
B 2001 95
B 2003 23
B 2008 15
C 2001 18
C 2009 32
C 2010 12

問題5
テーブルサンプル(score)
class | member_no | point
——-+———–+——-
1 | 100 | 50
1 | 101 | 55
1 | 102 | 56
2 | 100 | 60
2 | 101 | 72
2 | 102 | 73
2 | 103 | 73
classごとに通し番号を作成

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dbUnitの使い方

えーJavaで有名なテストツールDBUnitについて。 DbUtilではありませんので間違えないように。(私は最初間違えました・・・) まだ全然使い込んでるわけではありませんがどんなことができるかとい …

no image

MySQL.sockファイルに関して

朝出社してテストサーバーを見るといきなりサーバーが動いていないという事態が発生。 MySQLを起動しようとすると

なるメッセージがでて …

no image

HAVING句がらみの計算式

「達人に学ぶSQL徹底指南書」読んでますが、かなり難しいものがでてきましたね。 テーブルは前回のものと同じ以下のものを使います。 name | income ————+——– サンプソン | 4000 …

no image

SQL基礎 条件式はunionよりもcaseで

複雑な条件式があったときにcase式を使うことでパフォーマンスを向上させることができます。 ※一般にunionを使うよりも高速なことが多い。 例1 ある条件により別の列を使いたいとき、 [crayon …

no image

JSON型の検索

複数のタグなどを入れる場合、JSON型のカラムやデータなどを入れることがあるかと思いますが、ここから検索できるということが昨日わかりましたので、メモしておきます。 SQLServerで発見しましたが、 …

アーカイブ