我想按grade_level只選最大列。如果我按照grade_level選擇小於max列的列,則不應選擇該列。只選最大列
CREATE TABLE sample
(
name VARCHAR(50),
grade_level INT,
money INT
);
INSERT INTO sample (name, grade_level, money) VALUES
("John", 1, 100),
("John", 2, 200),
("John", 2, 250),
("Shadow", 1, 110),
("Shadow", 2, 300);
SELECT * FROM sample;
name | grade_level | money
John 1 100
John 2 200
John 2 250
Shadow 1 110
Shadow 2 300
這是我迄今爲止在處理樣本時的示例查詢。
SELECT name
, max(money)
FROM sample
WHERE grade_level = (SELECT max(grade_level) FROM sample WHERE grade_level = 2)
GROUP BY name;
輸出:
name | money
John 250
Shadow 110
正如你可以在這裏看到,如果我把grade_level
在2
我WHERE CLAUSE
它給了我一個正確的價值。但是,如果我將grade_level
設置爲1
,那麼如何避免選擇其他列,因爲我只選擇最大列。
你似乎沒有PRIMARY KEY,這很有可能會成爲在適當的時候出現問題。 – Strawberry
我想你對一行和一列之間的差異感到困惑。你期望的結果是什麼? – Strawberry