Tôi có bảng:Ba cột - nhận MAX với SQL
Đánh giá:
id | one | two | three
1 | 12 | 3 | 7
2 | 11 | 30 | 3
3 | 8 | 14 | 4
Làm thế nào tôi có thể nhận được với SQL MAX đánh giá cao từ các lĩnh vực này (một, hai, ba)? Đối với ví dụ này, đây là .
Tôi có bảng:Ba cột - nhận MAX với SQL
Đánh giá:
id | one | two | three
1 | 12 | 3 | 7
2 | 11 | 30 | 3
3 | 8 | 14 | 4
Làm thế nào tôi có thể nhận được với SQL MAX đánh giá cao từ các lĩnh vực này (một, hai, ba)? Đối với ví dụ này, đây là .
Trong MySQL bạn có thể sử dụng GREATEST Chức năng:
SELECT MAX(GREATEST(one, two, three))
FROM T;
Bạn có thể UNPIVOT dữ liệu tương tự như sau:
select max(value)
from
(
select id, 'one' col, one value
from yourtable
union all
select id, 'two' col, two value
from yourtable
union all
select id, 'three' col, three value
from yourtable
) src
Xem SQL Fiddle with Demo.
Hoặc bạn có thể sử dụng một cái gì đó như thế này:
SELECT max(data)
FROM
(
SELECT
CASE s.col
WHEN 'one' THEN one
WHEN 'two' THEN two
WHEN 'three' THEN three
END AS DATA
FROM yourtable t
CROSS JOIN
(
SELECT 'one' AS col
UNION ALL SELECT 'two'
UNION ALL SELECT 'three'
) s
) s
Hãy thử truy vấn này
SELECT tempTable.id, tempTable.max(val)
FROM (SELECT id, max(one) AS val
FROM tbl
UNION
SELECT id, max(two) AS val
FROM tbl
UNION
SELECT id, max(three) AS val
FROM tbl
) AS tempTable;
select max(if(one > two, if(one > three, one, three), if(two > three, two, three))
from Rating
SELECT MAX(field) FROM (
SELECT one AS field FROM table
UNION
SELECT two AS field FROM table
UNION
SELECT three AS field FROM table
) AS t
+1 Giải pháp SQL tiêu chuẩn đơn giản nhất. – l0b0
select GREATEST(max(one), max(two), max(three)) as maximum
from table;
+1 Câu trả lời hiệu quả nhất. –
Bạn có thể sử dụng case
tuyên bố
SELECT
CASE
WHEN one >= two AND one >= three THEN one
WHEN two >= one AND two >= three THEN two
WHEN three >= one AND three >= two THEN three
ELSE one
END AS MaxVal
mới một với tôi ... Cool – DRapp
+1, câu trả lời LỚN NHẤT :) – RIKI
Các " chức năng "vĩ đại nhất" cũng tồn tại trong Oracle, vì vậy giải pháp này cũng làm việc cho Oracle. – rgettman