回答編集履歴
1
回答追加
answer
CHANGED
@@ -1,1 +1,21 @@
|
|
1
|
-
カラムのyearが数値型であれば、入力値との差分を計算してその絶対値が最小のレコードを取得でいけると思います。
|
1
|
+
カラムのyearが数値型であれば、入力値との差分を計算してその絶対値が最小のレコードを取得でいけると思います。
|
2
|
+
|
3
|
+
**追記**
|
4
|
+
申し訳ありません。単純に考えていましたが副問い合わせが必要な気がしてきました。
|
5
|
+
|
6
|
+
SQLを書いてみました。
|
7
|
+
|
8
|
+
```SQL
|
9
|
+
SELECT t1.*,MIN(ABS(t1.year - 2020)) AS diff_year
|
10
|
+
FROM salary t1
|
11
|
+
INNER JOIN
|
12
|
+
(
|
13
|
+
SELECT MAX(name) AS max_name,MIN(ABS(year - 2020)) AS diff_year
|
14
|
+
FROM salary
|
15
|
+
GROUP BY name
|
16
|
+
) t2
|
17
|
+
ON t1.name = t2.max_name AND MIN(ABS(t1.year - 2020)) = t2.diff_year
|
18
|
+
ORDER BY t1.diff_year ASC;
|
19
|
+
```
|
20
|
+
|
21
|
+
久しぶりなのと検証環境が手元にないのでエラーがでたらすみません。
|