MySQL 8.0 provides another way to handle JSON documents, actually in a "Not only SQL" (NoSQL) approach... In other words, if you need/want to manage JSON documents (collections) in a non-relational manner, with CRUD (acronym for Create/Read/Update/Delete) operations then you can use MySQL 8.0! Did you know that?
SQL is a verbose language, and one of the most verbose features are window functions.
In a stack overflow question that I’ve encountered recently, someone asked to calculate the difference between the first and the last value in a time series for any given day:
volume tstamp --------------------------- 29011 2012-12-28 09:00:00 28701 2012-12-28 10:00:00 28830 2012-12-28 11:00:00 28353 2012-12-28 12:00:00 28642 2012-12-28 13:00:00 28583 2012-12-28 14:00:00 28800 2012-12-29 09:00:00 28751 2012-12-29 10:00:00 28670 2012-12-29 11:00:00 28621 2012-12-29 12:00:00 28599 2012-12-29 13:00:00 28278 2012-12-29 14:00:00
first last difference date …[Read more]
Windowing Functions can get quite complex very quickly when you
start taking advantage of the frame clause. Ranges and rows can
get confusing. So for review lets look at how the
[window name] [partition clause] [order clause] [frame clause]
That looks simple. And them come terms like UNBOUNDED PRECEDING that could put a knot in your gut. The manual is not exactly written to help novices in this area get up to speed. But don't panic. If you work through the examples that follow (and please do the preceding part of this series before trying these examples) you will have a better appreciation of what is going on with window function.
The Frame Clause
So the frame clause is optional in the window function. A frame is considered a subset of the current partition and defines that subset. Frames are determined with …
One of the major features coming to MySQL 8.0 is the support of Window functions. The detailed documentation is already available here Window functions. I wanted to take a quick look at the cases where window functions help.
Probably one the most frequent limitations in MySQL SQL syntax was analyzing a dataset. I tried to find the answer to the following question: “Find the Top N entries for each group in a grouped result.”
To give an example, I will refer to this request on Stackoverflow. While there is a solution, it …[Read more]
I've decided to stop reviewing MySQL Release Notes in this
series, but it does not mean that I am not interested in MySQL
bugs any more. At the moment I am subscribed to 91 active MySQL
bugs reported by other MySQL users, and in this blog post I am
going to present 15 of them, the most recently reported ones. I'd
really want to see them fixed or at least properly processed as
soon as possible.
In some cases I am going to add my speculations on how the bug had better be handled, or maybe highlight some important details about it. It is not my job any more to process/"verify" any community bug reports for any kind of MySQL, but I did that for many years and I've spent more than 5 years "on the other side", being a member of Community, so in some cases I let myself to share some strong opinion on what may be done …
MySQL will have Windowing functions and CTEs which will mean it will be easier to do data analysis with MySQL. You can now make calculations on data from each row in a query plus rows related to that row. Windows will make it easier to group items when GROUP BY does not meet needs. This is a great breakthrough but the new documentation has a steep learning curve if you are starting from zero. Hopefully this and following blogs will make it easier to get started with Windowing Functions. OVER & WINDOW as a keywords Let's start with the world_x sample database. The sample below orders the city table by the CountryCode but notice the window w as (order by CountryCode) phrase. This sets up a group for analysis, or a window on the data. For this example we will get the row number, rank, and dense rank of the data in that group. So for CountryCode of ABW we get a row number of 1, rank of 1, …[Read more]
In recent months, there had been some really exciting news from the MySQL team:
These two SQL standard language features are among the most powerful SQL features that are available from most other databases. I frequently include them in conference talks about SQL (see my article about 10 SQL Tricks That You Didn’t Think Were Possible), and as well in the Data Geekery SQL Masterclass. With MySQL 8.0 now supporting these …[Read more]