1+ # MAX_BY and MIN_BY test cases
2+
3+
4+ # Test max_by with numbers
5+ query I
6+ SELECT max_by(x, y) FROM VALUES (1, 10), (2, 5), (3, 15), (4, 8) as tab(x, y);
7+ ----
8+ 3
9+
10+ # Test min_by with numbers
11+ query I
12+ SELECT min_by(x, y) FROM VALUES (1, 10), (2, 5), (3, 15), (4, 8) as tab(x, y);
13+ ----
14+ 2
15+
16+ # Test max_by with strings
17+ query I
18+ SELECT max_by(name, length(name)) FROM VALUES ('Alice'), ('Bob'), ('Charlie') as tab(name);
19+ ----
20+ Charlie
21+
22+ # Test min_by with strings
23+ query I
24+ SELECT min_by(name, length(name)) FROM VALUES ('Alice'), ('Bob'), ('Charlie') as tab(name);
25+ ----
26+ Bob
27+
28+ # Test max_by with null values
29+ query I
30+ SELECT max_by(x, y) FROM VALUES (1, 10), (2, null), (3, 15), (null, 8) as tab(x, y);
31+ ----
32+ 2
33+
34+ # Test min_by with null values
35+ query I
36+ SELECT min_by(x, y) FROM VALUES (1, 10), (2, null), (3, 15), (null, 8) as tab(x, y);
37+ ----
38+ 2
39+
40+ # Test max_by with a single value
41+ query I
42+ SELECT max_by(x, y) FROM VALUES (1, 10) as tab(x, y);
43+ ----
44+ 1
45+
46+ # Test min_by with a single value
47+ query I
48+ SELECT min_by(x, y) FROM VALUES (1, 10) as tab(x, y);
49+ ----
50+ 1
51+
52+ # Test max_by with an empty set
53+ query I
54+ SELECT max_by(x, y) FROM (SELECT * FROM (VALUES (1, 10)) WHERE 1=0) as tab(x, y);
55+ ----
56+ NULL
57+
58+ # Test min_by with an empty set
59+ query I
60+ SELECT min_by(x, y) FROM (SELECT * FROM (VALUES (1, 10)) WHERE 1=0) as tab(x, y);
61+ ----
62+ NULL
0 commit comments