回答編集履歴
2
追記
test
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
記述を省略しても内部的にグループされています。
|
4
4
|
|
5
|
+
(例示のSQLでは全体を1つのグループとみなしています)
|
6
|
+
|
5
|
-
そして一般的にSQLではグループ化に使ったカラム以外
|
7
|
+
そして一般的にSQLではグループ化に使ったカラム以外を参照するとエラーになります。
|
6
8
|
|
7
9
|
※しかし、mysqlはこれをエラーにしません。
|
8
10
|
|
@@ -35,3 +37,21 @@
|
|
35
37
|
**二つ目のSQLでは**
|
36
38
|
|
37
39
|
値が7560のレコードに絞り込んでいますので、「水道光熱費」か「家賃」のどちらが選択されます。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
もし値が最大のレコードを抽出したいなら次のようなSQLになります。
|
46
|
+
|
47
|
+
※最大値のレコードが複数あれば、複数が抽出されます。
|
48
|
+
|
49
|
+
```SQL
|
50
|
+
|
51
|
+
SELECT item, amount_invested
|
52
|
+
|
53
|
+
FROM hoge
|
54
|
+
|
55
|
+
WHERE amount_invested = (SELECT MAX(amount_invessted) FROM hoge);
|
56
|
+
|
57
|
+
```
|
1
表現修正
test
CHANGED
@@ -24,9 +24,9 @@
|
|
24
24
|
|
25
25
|
**最初のSQLでは**
|
26
26
|
|
27
|
-
maxは7560と確定ですが、itemはamount_investedの値が7560のitemという縛りが無いので、「食費」か「水道光熱費」か「家賃」のど
|
27
|
+
maxは7560と確定ですが、itemはamount_investedの値が7560のitemという縛りが無いので、「食費」か「水道光熱費」か「家賃」のどれが選択されても良い状況です。
|
28
28
|
|
29
|
-
このような場合、mysqlはユーザには結果が予測できない基準で一つを選択します。
|
29
|
+
このような場合、mysqlは**ユーザには結果が予測できない基準で**一つを選択します。
|
30
30
|
|
31
31
|
※おそらくデータ的に先頭に近いものが選択されていると思いますが、この順は食費を更新したりすると変化するでしょう。
|
32
32
|
|