色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 多個值求最小值

劉柏宏2年前11瀏覽0評論

在MySQL數據庫中,我們經常需要對多個列中的數值進行一些計算操作,比如求最小值、最大值、平均值等等。如果我們只需要對單個列中的數據進行計算,可以使用MIN()和MAX()函數;但如果需要對多個值進行計算,我們需要借助子查詢和聯合查詢來實現。

-- 例子表格結構
CREATE TABLE scores (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
subject VARCHAR(20),
score INT
);
-- 示例數據
INSERT INTO scores(name, subject, score)
VALUES('小明', '語文', 87),
('小明', '數學', 92),
('小明', '英語', 80),
('小李', '語文', 75),
('小李', '數學', 85),
('小李', '英語', 90),
('小紅', '語文', 91),
('小紅', '數學', 88),
('小紅', '英語', 96);

假設我們需要求出每個學生的最低成績,我們可以使用子查詢來實現:

SELECT name, MIN(score) AS min_score
FROM scores
GROUP BY name;

上述查詢會返回每個學生的最低成績,例如:

+-------+-----------+
| name  | min_score |
+-------+-----------+
| 小明  |        80 |
| 小李  |        75 |
| 小紅  |        88 |
+-------+-----------+

如果我們需要求出每個學生的最低成績所屬的學科,可以使用聯合查詢來實現:

SELECT name, subject, score
FROM scores
WHERE (name, score) IN (
SELECT name, MIN(score)
FROM scores
GROUP BY name
);

上述查詢會返回每個學生最低成績所屬的學科,例如:

+-------+---------+-------+
| name  | subject | score |
+-------+---------+-------+
| 小明  | 英語  |    80 |
| 小李  | 語文  |    75 |
| 小紅  | 數學  |    88 |
+-------+---------+-------+

在實際使用中,我們需要根據具體的需求選擇不同的查詢方法以提高SQL的效率和可讀性。