回答編集履歴
4
修正
answer
CHANGED
@@ -193,5 +193,10 @@
|
|
193
193
|
(5, 'e', '名古屋'),
|
194
194
|
(6, 'f', '大阪'),
|
195
195
|
(7, 'g', '名古屋'),
|
196
|
-
(8, '
|
196
|
+
(8, 'h', '福岡');
|
197
|
-
```
|
197
|
+
```
|
198
|
+
|
199
|
+
※ちなみにSQLはDBの種類によって方言があり、このCREATE TABLEも別の環境やDBでそのまま通るとは限りません。私の環境で抽出したものですし(PostgreSQL11 PgAdmin4)
|
200
|
+
|
201
|
+
既に回答がついているように開発環境と本番環境含めて全て同じ種類、同じバージョンでされた方がトラブルなく済みます。これはプログラムについても同じですね。
|
202
|
+
マイナーバージョンでも1つ違えば使えなくなる機能、非推奨の機能があってそれだけで同じ挙動は期待できません。
|
3
修正
answer
CHANGED
@@ -69,7 +69,8 @@
|
|
69
69
|
| |60|
|
70
70
|
|
71
71
|
ここで「select句」にsum(得点) as sum_pointとだけ書きました。他の列は選んでいません。
|
72
|
+
※しれっと「 as xxxx」というのを使っていますが、これは「エイリアス」で、要は「別名」ですね。
|
72
|
-
|
73
|
+
テーブル名が長かった場合に省略した名前だったり、今回のように集約関数を使うとそのままsum(得点)というカラム名になるのでわかりやすくなるように別名をつけて扱いやすくしています。
|
73
74
|
|
74
75
|
それはなぜか?
|
75
76
|
|
@@ -125,7 +126,7 @@
|
|
125
126
|
`SELECT "books".* FROM "books" GROUP BY "books"."year"`
|
126
127
|
|
127
128
|
books.* としています。booksはテーブル名として、
|
128
|
-
* というのは専門用語だと「全列ワイルド・カード」です。
|
129
|
+
`* `というのは専門用語だと「全列ワイルド・カード」です。
|
129
130
|
つまり、「全ての列を選択する」という意味になります。
|
130
131
|
|
131
132
|
質問本文に「books.idなどというcolumn自体使っていない」とありますし、
|
2
修正
answer
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
CREATE TABLE文を提供することができれば、今回でいえばRubyを実行できる環境がなくても情報の再現確認ができます。
|
28
28
|
できればサンプルデータのINSERT文があればなおよしです。回答のためにデータを考えたり、質問内容からくみ取るのって結構大変ですからね。
|
29
29
|
|
30
|
-
こ
|
30
|
+
こういったツールは導入、活用してください。
|
31
31
|
|
32
32
|
# 前提2
|
33
33
|
|
1
修正
answer
CHANGED
@@ -177,7 +177,7 @@
|
|
177
177
|
※ちなみに今回私が回答の際に作ったサンプルのCREATE TABLEとINSERTです。
|
178
178
|
```sql
|
179
179
|
|
180
|
-
CREATE TABLE
|
180
|
+
CREATE TABLE "user"
|
181
181
|
(
|
182
182
|
id integer NOT NULL,
|
183
183
|
name character varying(10) COLLATE pg_catalog."default" NOT NULL,
|