How to Force a Guaranteed Minimum Value When Selecting a Column in SQL Server

Suppose you’re trying to query column, but you need to set a minimum value to be returned, even if the column contains values that are less than that minimum. For example, you want a minimum value of 50 to be returned, even if the column contains values that are less than 50.

We can use the GREATEST() function to build such a query.

Read more

Understanding the DISTINCT ON Option in PostgreSQL

Most major RDBMSs support the DISTINCT clause, which allows us to get unique – or “distinct” – rows from our SQL queries. But PostgreSQL’s implementation of this clause has an extra option that most other RDBMSs don’t include.

PostgreSQL allows us to include the ON() option when using DISTINCT. This enables us to specify exactly which columns should be evaluated by the DISTINCT modifier, while simultaneously allowing us to return columns that aren’t evaluated.

Read more

Fix “SELECT DISTINCT ON expressions must match initial ORDER BY expressions” in PostgreSQL

If you’re getting a PostgreSQL error that reads “SELECT DISTINCT ON expressions must match initial ORDER BY expressions” when trying to run a query, it’s probably because the initial columns provided to your ORDER BY clause are different to the ones provided to the DISTINCT ON clause.

To fix this error, make sure the initial columns provided to the ORDER BY clause are included in the DISTINCT ON clause.

Read more

3 Oracle LIMIT Clause Alternatives

Many RDBMSs have a LIMIT clause that allows us to limit the rows returned by a query to a specified number. SQL Server doesn’t have a LIMIT clause but it does have a TOP() function that allows us to do the same thing.

But Oracle Database has neither.

Fortunately, Oracle does have a number of options that allow us to get the same result.

Read more

How to Fix the Error “The function ‘FIRST_VALUE’ must have an OVER clause with ORDER BY” in SQL Server

If you’re getting error message 4112 that reads “The function ‘FIRST_VALUE’ must have an OVER clause with ORDER BY” when using the FIRST_VALUE() function, it’s probably because you’re omitting the ORDER BY clause from the OVER clause.

In SQL Server, the FIRST_VALUE() function requires an OVER clause that contains an ORDER BY clause. This error happens when we provide the OVER clause but not the ORDER BY clause.

To fix this error, simply add an ORDER BY clause to the OVER clause.

Read more

How to Use the DISTINCT Clause in SQL

Most of the major relational database management systems (RDBMSs) allow for a DISTINCT clause to be included in our SQL queries.

We use the DISTINCT keyword to return only unique rows. It eliminates duplicates from the results. If we have two or more rows with exactly the same data, we’ll only see one row in the results.

Read more

3 Ways to Fix “A TOP can not be used in the same query or sub-query as a OFFSET” Error in SQL Server

If you’re getting an error that reads “A TOP can not be used in the same query or sub-query as a OFFSET” when running a query in SQL Server, it’s probably because you’re using the TOP() clause and the OFFSET clause in the same query or sub-query.

We can’t use the TOP() clause and the OFFSET clause in the same query in SQL Server.

Below are three options for fixing this error.

Read more

How to Fix “The function ‘LAG’ must have an OVER clause” Error in SQL Server

If you’re getting an error that reads “The function ‘LAG’ must have an OVER clause” in SQL Server, it’s probably because you’re calling the LAG() function without an OVER clause.

The LAG() function requires an OVER clause (and that clause must have an ORDER BY clause).

To fix this issue, be sure to include an OVER clause when calling the LAG() function.

Read more

How to Fix Error “function lead(numeric, numeric) does not exist” in PostgreSQL

If you’re getting an error in PostgreSQL that reads something like “function lead(numeric, numeric) does not exist“, it may be because your second argument is of the wrong data type.

The second argument to the lead() function is optional, but if it’s provided, it must be an integer.

To fix this issue, make sure the second argument is an integer. Alternatively, you can omit the second argument altogether if you’re happy to use the default value of 1.

Read more