Error
Error Code:
3589
MySQL Error 3589: Invalid Window RANGE Frame
Description
This error occurs in MySQL window functions when you define a `RANGE` frame with an `ORDER BY` expression of a numeric data type (e.g., INT, DECIMAL) while also specifying an `INTERVAL` bound. MySQL requires the `ORDER BY` expression for `RANGE` frames with `INTERVAL` bounds to be a date or time data type (e.g., DATE, DATETIME, TIMESTAMP) to perform the necessary interval calculations.
Error Message
Window '%s' with RANGE frame has ORDER BY expression of numeric type, INTERVAL bound value not allowed.
Known Causes
3 known causesNumeric ORDER BY in RANGE Frame with INTERVAL
Using a numeric column in the `ORDER BY` clause of a window function that employs a `RANGE` frame and an `INTERVAL` bound. MySQL expects date/time types for this combination to correctly interpret the interval.
Misapplication of RANGE Frame Type
Attempting to use a `RANGE` frame with `INTERVAL` bounds on a numeric `ORDER BY` expression, when a `ROWS` frame (which operates on row offsets) might be the intended and compatible choice for numeric ordering.
Incorrect INTERVAL Bound Specification
Defining an `INTERVAL` bound (e.g., `INTERVAL 5 UNIT`) within a `RANGE` frame where the `ORDER BY` expression is a numeric type, creating a fundamental data type mismatch for interval arithmetic.
Solutions
Coming SoonGeneral Troubleshooting Tips
- Check the error message carefully for specific details
- Review recent changes that might have caused the error
- Search for the exact error code in the official documentation
- Check log files for additional context
- Try restarting the application or service