[MDEV-15298] Wrong result with aggregation function, used inside window function Created: 2018-02-13  Updated: 2019-05-03  Resolved: 2019-05-03

Status: Closed
Project: MariaDB Server
Component/s: Optimizer - Window functions
Affects Version/s: 10.2, 10.3, 10.4
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Alice Sherepa Assignee: Varun Gupta (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
is duplicated by MDEV-18373 DENSE_RANK is not calculated correctly Closed

 Description   

CREATE TABLE t (a INT);
INSERT INTO t VALUES(1),(2),(3),(4),(4);
SELECT a, SUM(a), SUM(a) OVER (ORDER BY SUM(a)) FROM t GROUP BY a;
SELECT a, SUM(a), SUM(a) OVER (ORDER BY SUM(a)+1) FROM t GROUP BY a; #  expected result 1,3,6,10
SELECT SUM(a) OVER (PARTITION BY SUM(a)) FROM t GROUP BY a;
SELECT SUM(a) OVER (PARTITION BY SUM(a)+1) FROM t GROUP BY a; #  expected result 1,3,6,10

MariaDB [test]> SELECT a, SUM(a), SUM(a) OVER (ORDER BY SUM(a)) FROM t GROUP BY a;
+------+--------+-------------------------------+
| a    | SUM(a) | SUM(a) OVER (ORDER BY SUM(a)) |
+------+--------+-------------------------------+
|    1 | 1      | 1                             |
|    2 | 2      | 3                             |
|    3 | 3      | 6                             |
|    4 | 8      | 10                            |
+------+--------+-------------------------------+
4 rows in set (0.00 sec)
 
MariaDB [test]> SELECT a, SUM(a), SUM(a) OVER (ORDER BY SUM(a)+1) FROM t GROUP BY a;
+------+--------+---------------------------------+
| a    | SUM(a) | SUM(a) OVER (ORDER BY SUM(a)+1) |
+------+--------+---------------------------------+
|    1 | 1      | 10                              |
|    2 | 2      | 10                              |
|    3 | 3      | 10                              |
|    4 | 8      | 10                              |
+------+--------+---------------------------------+
4 rows in set (0.01 sec)
 
MariaDB [test]> SELECT SUM(a) OVER (PARTITION BY SUM(a)) FROM t GROUP BY a;
+-----------------------------------+
| SUM(a) OVER (PARTITION BY SUM(a)) |
+-----------------------------------+
| 1                                 |
| 2                                 |
| 3                                 |
| 4                                 |
+-----------------------------------+
4 rows in set (0.00 sec)
 
MariaDB [test]> SELECT SUM(a) OVER (PARTITION BY SUM(a)+1) FROM t GROUP BY a;
+-------------------------------------+
| SUM(a) OVER (PARTITION BY SUM(a)+1) |
+-------------------------------------+
| 10                                  |
| 10                                  |
| 10                                  |
| 10                                  |
+-------------------------------------+
4 rows in set (0.00 sec)


Generated at Thu Feb 08 08:20:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.