<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kay Sauter</title>
    <description>The latest articles on DEV Community by Kay Sauter (@kaysauter).</description>
    <link>https://dev.to/kaysauter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F190963%2F66cdf055-b4b5-4607-8254-21529e12f2f9.jpg</url>
      <title>DEV Community: Kay Sauter</title>
      <link>https://dev.to/kaysauter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaysauter"/>
    <language>en</language>
    <item>
      <title>I'm moderating at Dataweekender conference</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Thu, 15 Oct 2020 08:40:04 +0000</pubDate>
      <link>https://dev.to/kaysauter/i-m-moderating-at-dataweekender-conference-146k</link>
      <guid>https://dev.to/kaysauter/i-m-moderating-at-dataweekender-conference-146k</guid>
      <description>&lt;p&gt;The Dataweekender conference is coming up again this Saturday Oct 17! After the very successful first Dataweekender conference on May 2nd 2020 with more than 1000 sign-ups and with an excellent speaker lineup, the 6 founders of Dataweekender decided to setup another one this year.&lt;br&gt;&lt;br&gt;
Just like the first time, I will be moderating again this October 17. The conference will be held from 9:00 - 19:00 Central European Summer Time. &lt;/p&gt;

&lt;p&gt;Dataweekender is a free to watch and free of sponsorships virtual conference and anyone can join. If you're interested in the &lt;a href="https://www.dataweekender.com/schedule"&gt;schedule&lt;/a&gt; and if you're hooked up for watching one or more sessions, &lt;a href="https://www.meetup.com/de-DE/DataWeekender/"&gt;sign up here&lt;/a&gt;. I'll be on track number 4.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.dataweekender.com/about-us"&gt;core organizers&lt;/a&gt; of Dataweekender, &lt;a href="https://twitter.com/kevchant"&gt;Kevin Chant&lt;/a&gt;, &lt;a href="https://twitter.com/gethyn_ellis"&gt;Gethyn Ellis&lt;/a&gt;, &lt;a href="https://twitter.com/bidgeir"&gt;Ásgeir Gunnarsson&lt;/a&gt;, &lt;a href="https://twitter.com/markdataguy"&gt;Mark Hayes&lt;/a&gt;, &lt;a href="https://twitter.com/matesic_damir"&gt;Damir Matešić&lt;/a&gt; and &lt;a href="https://twitter.com/Transmokopter"&gt;Magnus Ahlkvist&lt;/a&gt; are just like I am, strong supporters of &lt;a href="https://www.meetup.com/de-DE/DataWeekender/pages/30310995/CodeOfConduct/?name=CodeOfConduct&amp;amp;id=30310995"&gt;inclusion&lt;/a&gt;. No matter gender, race or disability, everyone should be equally able to participate this very nice conference with 6 tracks and 60 talks. &lt;/p&gt;

&lt;p&gt;Join us at the conference and have a good time!&lt;/p&gt;

</description>
      <category>conference</category>
      <category>dataweekender</category>
      <category>inclusion</category>
    </item>
    <item>
      <title>You've missed MS Ignite 2020? Don't worry!</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Thu, 24 Sep 2020 09:51:23 +0000</pubDate>
      <link>https://dev.to/kaysauter/you-ve-missed-ms-ignite-2020-don-t-worry-4nl5</link>
      <guid>https://dev.to/kaysauter/you-ve-missed-ms-ignite-2020-don-t-worry-4nl5</guid>
      <description>&lt;p&gt;Yes, while some webcasts of MS Ignite are not recorded or published after the event, some are! &lt;/p&gt;

&lt;p&gt;Even if you are a beginner developer, I really can recommend MS Ignite every year because it showcases a lot of ideas that might inspire you in your daily work. I personally try to follow MS Ignite every year because it is delivering so much content you can learn from. I also try to follow Twitterverse during that time because during those days the community is buzzing more than it normally does!&lt;/p&gt;

&lt;p&gt;If you don't have the time, just crawl some through some of the videos on &lt;a href="https://www.youtube.com/channel/UCrhJmfAGQ5K81XQ8_od1iTg"&gt;YouTube&lt;/a&gt; or check the slides on the &lt;a href="https://github.com/microsoft/ignitelearnzone"&gt;GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Make sure that you visit those sites again in the next few days because according to my experience, Microsoft is going to upload sessions one after one in the next few days.&lt;/p&gt;

&lt;p&gt;Have fun and enjoy the sessions!&lt;/p&gt;

&lt;p&gt;I'd like to thank a lot to everybody who somehow contributed to Microsoft Ignite 2020!&lt;/p&gt;

</description>
      <category>msignite</category>
      <category>events</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>The Art Of Data Visualization</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Sun, 26 Apr 2020 17:42:17 +0000</pubDate>
      <link>https://dev.to/kaysauter/the-art-of-data-vizualisation-5g1e</link>
      <guid>https://dev.to/kaysauter/the-art-of-data-vizualisation-5g1e</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;
Pie charts and why not to use
them

&lt;ul&gt;
&lt;li&gt;A bad example first to get the
picture&lt;/li&gt;
&lt;li&gt;How to improve this graph&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;I began telling stories with data in 2008 when I was working for a Japanese electronic manufacturing company. I was in marketing back then and as an technical analyst, I had to cleanse, calculate, and maintain a lot of data in excel. I think most of you reading this have been there, done that: compiling a report for the management who wants to get insights quickly and while not drowning in numbers. They need to be plain and simple graphics; sometimes also called dashboards. This is a skill that any analyst and data scientist should have. This article is going to be a series and split in several postings.&lt;/p&gt;

&lt;h1&gt;
  
  
  Pie charts and why not to use them
&lt;/h1&gt;

&lt;h3&gt;
  
  
  A bad example first to get the picture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--10Fps_uQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c52xm1lgeacmd6xxxtt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--10Fps_uQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c52xm1lgeacmd6xxxtt5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nice pie-chart – or is it? Well, lets go through this pie chart:&lt;/p&gt;

&lt;h4&gt;
  
  
  Title
&lt;/h4&gt;

&lt;p&gt;Yes, it does have a title! It’s clear that this chart is meant to tell something about sales. But fails to tell what figures are actually shown. Is it Revenue? Profit?&lt;/p&gt;

&lt;h4&gt;
  
  
  Legend
&lt;/h4&gt;

&lt;p&gt;Yes, it does have a legend, but what about the year? If we don’t know which year we are looking at. The year’s quarter don’t really help either if we know if one or more of them haven’t passed yet because it could be either last year’s quarterly figure or it could be a projection.&lt;/p&gt;

&lt;h4&gt;
  
  
  Numbers
&lt;/h4&gt;

&lt;p&gt;There are no numbers so there is no way to tell how exactly those quarters are split.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pie chart
&lt;/h4&gt;

&lt;p&gt;The pie chart is always the wrong choice. You may have realized by now that it is hard to tell which sales were better, in Q2 or Q3? Humans are not good when it comes to comparing areas and especially not when it comes to pie shaped areas. I will go into this in the next chapter.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to improve this graph
&lt;/h3&gt;

&lt;p&gt;Did I mention that pie charts are bad? It’s not just because human brains are not good at comparing areas but they are wasting of space, too. This chart could have been worse if I had picked a 3-dimensional chart which are even worse, for any chart. That is because if you choose to pick a 3-dimensional chart, you tend to bring in perspectives which makes reading even harder. Below you see the exact&lt;br&gt;
same chart in 3-dimensional chart as before and you’ll notice that Q4 actually&lt;br&gt;
seems quite the same like Q2 and Q3:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1Pl0wlGZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dyfjcwqgkuvxva9qxlhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1Pl0wlGZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/dyfjcwqgkuvxva9qxlhm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Probably you’ve already noticed that displaying Q1..Q4 is a bit dull because you can't compare them to their counterparts from earlier years. In other words, pie charts are incredibly bad in comparing other values. Let’s compare the chart above with a pillar chart:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p-7N4i0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vd193q3nbo8880an2zst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p-7N4i0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vd193q3nbo8880an2zst.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, although this pillar chart has the exact same size as the other two charts before, the pillar chart contains much more information. You can see the previous year, the budget and you can also see the quarters that are still in future by representing no values. &lt;/p&gt;

&lt;p&gt;Donut or ring chart which are essentially exactly the same as pie charts&lt;br&gt;
plus having a hole in them and perform as bad as the normal pie charts do. Another similar concepts are cockpit charts. They have an arrow in it to point a certain value, sometimes they also have a background colorization from green to yellow to red; but they perform even worse than pie charts because they&lt;br&gt;
display just one single value with no comparison. Oftentimes it is not even clear what the colors are referring or comparing to.&lt;/p&gt;

&lt;p&gt;As we can see, pie charts are wasting space for information and on top&lt;br&gt;
of that, they are not easy to read. Readability is what I will cover in&lt;br&gt;
the next chapter which I intend to publish next week.&lt;/p&gt;

&lt;p&gt;Edit 24.09.2020: After I've written this and estimated how much more I'd want to write about this topic, I've decided to write a book about about it! So please stay tuned. I don't have all details yet, but as soon as I can, I will write this on dev.to.&lt;/p&gt;

</description>
      <category>dashboarding</category>
      <category>dataviz</category>
    </item>
    <item>
      <title>Microsoft Data Platform Stack Overview</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Sun, 12 Apr 2020 16:44:45 +0000</pubDate>
      <link>https://dev.to/kaysauter/microsoft-data-platform-stack-overview-41lo</link>
      <guid>https://dev.to/kaysauter/microsoft-data-platform-stack-overview-41lo</guid>
      <description>&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Table Of Contents&lt;/li&gt;
&lt;li&gt;Motivation&lt;/li&gt;
&lt;li&gt;On-premises software&lt;/li&gt;
&lt;li&gt;Cloud-based: Azure tools&lt;/li&gt;
&lt;li&gt;Tabular overview from ETL to frontend&lt;/li&gt;
&lt;li&gt;Development tools&lt;/li&gt;
&lt;li&gt;Programming languages used in Data Platform Stack&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Motivation
&lt;/h2&gt;

&lt;p&gt;I vividly remember my very first time years ago when I had to explain a relatively simple business intelligence architecture to some people who never have heard of such architecture before. I've left them confused. Well, I can't blame them for I was talking with too many acronyms like SSAS, SSIS, SSMS, SSRS! During my career, I've learned a lot on how to explain this, but that is still no easy task if you're talking to people who are not familiar with the data world. And because Microsofts data platform family is still growing, this problem doesn't get any easier.&lt;/p&gt;

&lt;p&gt;Unfortunately, even though I am very happy with Microsoft's documentation about their data stack, I am yet to find a good overview of all Data Platform Tools which you do not have to click through tons of links. Such one single site would help to get just an overview of the tools and tell concepts to people who are new to this topic.&lt;/p&gt;

&lt;p&gt;This is what I aim to do with this post, a simple overview of all tools by Microsoft that somehow are related to the Data Platform Stack. I will focus on software by Microsoft only. Still, because this already contains so many tools, I will probably miss some. If you spot one or you believe that something is wrong, please drop a line in the comments! I will add or correct it and credit you! I also will try to maintain the links and add new tools by Microsoft. This page is also available on &lt;a href="https://github.com/kaysauter/DataPlatformOverview/blob/master/README.md"&gt;Github&lt;/a&gt;, so you may create a PR there as well. &lt;/p&gt;

&lt;h2&gt;
  
  
  On-premises software
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool Name&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;th&gt;Costs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/"&gt;SQL Server&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A the relational database solution software by Microsoft which is usually installed on-premises. It also can be installed on Virtual Machines in the cloud (Azure).&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/analysis-services/analysis-services-overview"&gt;SQL Server Analysis Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SSAS is an analytical data engine that supports both multidimensional and tabular models. In short, it sort of aggregates and calculates data for analytical purposes. Usually, it consumes data from a data warehouse.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-services"&gt;SQL Server Integration Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SSIS is the SQL Server feature that ingests and transforms data that are to be loaded into a database, oftentimes to a staging database or a data warehouse.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/reporting-services"&gt;SQL Server Reporting Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SSRS is an on-premises service which creates reports and dashboard which may be scheduled and subscribed by users. The focus of this solution is paginated reports.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://products.office.com/en-us/excel"&gt;Excel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Excel is a very powerful spreadsheet software that can present analyze and present data and is worldwide the most widely used software for this purpose. It can be connected to a SQL Server or SSAS or numerous other data sources.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://products.office.com/en-us/compare-all-microsoft-office-products"&gt;Part of the MS Office package, different editions available&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/power-bi/fundamentals/power-bi-overview"&gt;Power BI Premium&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A business analytics solution for dashboarding and other reports. The focus of Power BI is non-paginated reports. Its idea is to collaborate and share reports to analysts and other stakeholders with ease. It also can be used on mobile devices, hence having the focus on non-paginated reports and dashboards. It also contains SSRS.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://powerbi.microsoft.com/en-us/pricing/"&gt;Subscription based&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/advanced-analytics/"&gt;Machine Learning Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A SQL Server Feature that provides abilities to use the programming languages R or Python for Machine Learning that can be executed directly on SQL Server.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/master-data-services/"&gt;Master Data Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Manages the Master Data sets which also has something like version control of the master data. It makes it easier to ensure that the master data is as clean as possible.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing"&gt;Licensed per CPU, depending on edition and setup&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cloud-based: Azure tools
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool Name&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;th&gt;Costs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/sql-database/"&gt;Azure SQL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Microsofts SQL Servers pendant in the cloud. Its strengths rely on Azures' versatility and the possibility for elasticity and scaling-up or scaling out and are fully managed by Microsoft.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/sql-database/managed/"&gt;Depends on various tier plans which depend on CPU, memory, and location.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/de-de/services/data-factory/"&gt;Azure Data Factory&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;The Azure data integration solution (ETL &amp;amp; ELT) while being managed by Microsoft. It can also use SSIS packages.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/data-factory/"&gt;Depends on several factors like service type, tiers, etc.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/cosmos-db/"&gt;Azure Cosmo DB&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Fully managed by Microsoft, is globally distributed for high availability and high speed and can use SQL and NoSQL alike. It also has elastic and automatic scaling.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/cosmos-db/"&gt;Depends on various tier plans which depend on CPU, memory, and location.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview"&gt;Azure Analysis Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A fully managed analysis service for tabular models on Azure. It is fully managed (Platform-as-a-service) by Microsoft. It does not support multidimensional models, neither PowerPivot for SharePoint.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/analysis-services/"&gt;Depends on various tier plans which depend on CPU, memory, and location.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/machine-learning/"&gt;Azure Machine Learning&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Microsofts ML Service on Azure, which features a neat GUI which enables hardcore data scientists and mere mortal business analysts alike. The latter group may use pre-defined packages that were written by experts so that its usage is fairly easy.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/machine-learning/"&gt;Depends on various tier plans which depend on CPU, memory, and location.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/synapse-analytics/"&gt;Azure Synapse Analytics&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Specialised analytics solution for data warehouses and big data for extreme speed. It can work with non-relational data and "traditional SQL" alike; it also provides possibilities for monitoring and data visualization with Power BI.&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/pricing/details/synapse-analytics/"&gt;Depends on various tier plans which depend on CPU, memory, and location.&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Tabular overview from ETL to frontend
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data &amp;amp; Integration&lt;/th&gt;
&lt;th&gt;Data Storage&lt;/th&gt;
&lt;th&gt;Data Computing&lt;/th&gt;
&lt;th&gt;Analysis &amp;amp; Presentation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-services"&gt;SSIS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/sql-server/"&gt;SQL Server&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-overview"&gt;SQL Server Analysis Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://products.office.com/en-us/excel"&gt;Excel&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/de-de/services/data-factory/"&gt;Azure Data Factory&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/sql-database/"&gt;Azure SQL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/machine-learning/what-is-sql-server-machine-learning"&gt;SQL Server Machine Learning Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://powerbi.microsoft.com/"&gt;Power BI&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/master-data-services/"&gt;Master Data Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/cosmos-db/"&gt;Azure Cosmo DB&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/machine-learning/"&gt;Azure Machine Learning&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/reporting-services"&gt;SQL Server Reporting Services&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/analysis-services/analysis-services-overview"&gt;Azure Analysis Services&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://azure.microsoft.com/en-us/services/synapse-analytics/"&gt;Azure Synapse Analytics&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/machine-learning/"&gt;Azure Machine Learning&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/machine-learning/what-is-sql-server-machine-learning"&gt;SQL Server Machine Learning Services&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Development tools
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool Name&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;th&gt;Costs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms"&gt;SQL Server Management Studio&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SSMS is a Software to manage and query your SQL Server instances and databases.&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio"&gt;Azure Data Studio&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ADS enables to manage and query SQL Server instances and databases with a focus on Azure. It is not as powerful as SSMS but has other strengths than SSMS, i.e. it can use Jupyter Notebooks.&lt;/td&gt;
&lt;td&gt;Open Source &amp;amp; free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide"&gt;Visual Studio&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;An Integrated Development Environment which is used for developing SSAS and SSIS solutions, but also can develop databases although the latter is not so commonly used that way. Usually, SQL Server developers would prefer SSMS.&lt;/td&gt;
&lt;td&gt;Community Edition free, other editions not&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt"&gt;SQL Server Data Tools&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SSDT which is a toolset living in Visual Studio. It enables you to create workflows for SSIS and create cubes (multidimensional and tabular for SSAS) and does not require a higher edition than community edition. SSDT exists as standalone software (shell) or within Visual Studio as an add-on.&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A lightweight editor that allows installing an addon-for SQL Server for. It enables you to write a T-SQL Code similar to Azure Data Studio.&lt;/td&gt;
&lt;td&gt;Open Source &amp;amp; free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/"&gt;Extended Events&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Enables to monitor (tracing) of events on SQL Servers, etc. for troubleshooting or solving performance bottlenecks.&lt;/td&gt;
&lt;td&gt;Free (a feature of SQL Server, no extra costs for extended events)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/reporting-services/install-windows/"&gt;SQL Server Report Builder&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This is a report builder for SSRS. It looks pretty much like Visual Studio minus the complexity Visual Studio gives because it is a complete and powerful IDE (Integrated Development Environment).&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://powerbi.microsoft.com/en-us/desktop/"&gt;Power BI Desktop&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Software for creating dashboards and reports that may be connected to various sources, including SQL Server, SSAS and a lot more. Allows writing code in R and Python.&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Programming languages used in Data Platform Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language Name&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/"&gt;T-SQL&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Transact-SQL, the Structured Query Language variant for SQL Server which offers a rich and powerful automatization language for querying and administration of SQL Server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/powershell/"&gt;PowerShell&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A shell language for administring Windows, but there are also many important packages for the Data Platform Stack.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/extension-python"&gt;Python&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A widely-used general-purpose scripting language which is very popular for the use of Machine Learning and Data Science. SQL Server can execute Python directly. It can also be used in PowerBI Desktop or Azure ML.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/extension-r"&gt;R&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A very popular functional language which focuses on statistical calculations and is helpful in Machine Learning and Data Science. SQL Server can execute R directly. It can also be used in PowerBI Desktop or Azure ML.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/dax/"&gt;DAX&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Data Analysis Expressions is a functional language used for calculations on SSAS. It is used in SSMS, Visual Studio, PowerBI Desktop and Excel.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.microsoft.com/en-us/sql/mdx/"&gt;MDX&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Multidimensional Expressions allows us to query multidimensional cubes on SSAS.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cover photo by &lt;a href="https://unsplash.com/photos/lRoX0shwjUQ"&gt;Kolar.io&lt;/a&gt; on &lt;a href="https://unsplash.com"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>database</category>
      <category>mssql</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Creating SQL Server on Linux with Docker is surprisingly easy!</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Sun, 05 Apr 2020 16:20:38 +0000</pubDate>
      <link>https://dev.to/kaysauter/creating-sql-server-on-linux-with-docker-is-surprisingly-easy-4lln</link>
      <guid>https://dev.to/kaysauter/creating-sql-server-on-linux-with-docker-is-surprisingly-easy-4lln</guid>
      <description>&lt;p&gt;A few weeks ago, I wanted to test out a problem for SQL Server within a virtual machine, but then I thought: "Why not on Linux? That's what I've been wanting to try for ages and I could do it on Docker which I also wanted to try for ages". I've put it aside thinking that this could take quite some time until I've done it. &lt;/p&gt;

&lt;p&gt;I was wrong. It is surprisingly easy to get a docker image by Microsoft. Since Microsoft already has a tutorial for this, I am just going to point to this tutorial and give more links for this really neat stuff! This small collection of links will make sure that you will see the most important sites you need for this. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first link is a tutorial by Microsoft: &lt;a href="https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&amp;amp;pivots=cs1-bash"&gt;https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&amp;amp;pivots=cs1-bash&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;If you prefer to watch a youtube video done by an expert, watch the video by Microsoft Data Platform MVP Grant Fritchey here: &lt;a href="https://www.youtube.com/watch?v=nHI3fxoS5kw"&gt;https://www.youtube.com/watch?v=nHI3fxoS5kw&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Keep in mind that this docker image runs on Linux, so SQL Server also runs on Linux. While this is possible, it comes with some limitations though: &lt;a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2019?view=sql-server-ver15#Unsupported"&gt;https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2019?view=sql-server-ver15#Unsupported&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;There is also a FAQ by Microsoft as to questions like licensing etc: &lt;a href="https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-faq?view=sql-server-ver15"&gt;https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-faq?view=sql-server-ver15&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have fun!&lt;/p&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introduction into Window Functions on SQL Server</title>
      <dc:creator>Kay Sauter</dc:creator>
      <pubDate>Sat, 07 Mar 2020 14:53:01 +0000</pubDate>
      <link>https://dev.to/kaysauter/introduction-into-window-functions-on-sql-server-1k6o</link>
      <guid>https://dev.to/kaysauter/introduction-into-window-functions-on-sql-server-1k6o</guid>
      <description>&lt;h2&gt;
  
  
  Why window functions may come in handy
&lt;/h2&gt;

&lt;p&gt;Let us dive directly into a real world example. You've got a table with salaries of different job functions and you are asked to find out what the n-tiles (quantiles, mean etc.) are of each function within a company. So this means you've got many people that hold a position which you want to compare with others. You want to compare salaries of marketing professionals to their peers, but you don't want to compare said salaries to marketing directors because they have their own salary bands. So that means you need to frame (also called partition) job titles with their own with which you calculate the n-tiles. Without window functions, this could be a quite fussy task. &lt;/p&gt;

&lt;p&gt;In order to walk through the problem, create a new database, I'm going to name mine FoehnWind. The following script creates a new table and inserts some sample data of 20 rows into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;USE&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;FoehnWind&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="k"&gt;GO&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;           &lt;span class="nb"&gt;TINYINT&lt;/span&gt; &lt;span class="k"&gt;IDENTITY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
 &lt;span class="n"&gt;FirstName&lt;/span&gt;    &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
 &lt;span class="n"&gt;LastName&lt;/span&gt;     &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
 &lt;span class="n"&gt;JobTitle&lt;/span&gt;     &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
 &lt;span class="n"&gt;AnnualSalary&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
 &lt;span class="k"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PK_dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="n"&gt;CLUSTERED&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;PRIMARY&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="k"&gt;GO&lt;/span&gt;
&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;].[&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;span class="k"&gt;VALUES&lt;/span&gt;
 &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'Ken'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Sanchez'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Chief Executive Officer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;530000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Jo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Berry'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;71875&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Lori'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Penor'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;73398&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Pat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Coleman'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;51874&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Stuart'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Macrae'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;59108&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Mary'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Dempsey'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;57641&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Wanida'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Benshoof'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Assistant'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60779&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'David'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Bradley'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Manager'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;130000&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Jill'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Williams'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;108117&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'John'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Wood'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;99407&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Sariya'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Pit'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;95048&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Terry'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Eminhizer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;106316&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Michael'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Sullivan'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;87047&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Ovidiu'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Cracium'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;107883&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Rob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Walters'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;109369&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Garrett'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Young'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Senior Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;118051&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'George'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Li'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Senior Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;117253&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Russell'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'King'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Senior Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;123362&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Sandra'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Alayo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Senior Marketing Specialist'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;118185&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;,(&lt;/span&gt; &lt;span class="s1"&gt;'Denise'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Smith'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'Vice President Marketing'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;250000&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;GO&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Firstly, lets use a window function which calculates the averages and percentiles of salaries for each job title:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;distinct&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JobTitle&lt;/span&gt;
        &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AnnualSalary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JobTitle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;AverageSalary&lt;/span&gt;
        &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;PERCENTILE_CONT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;WITHIN&lt;/span&gt; &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AnnualSalary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
            &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JobTitle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;MedianContinous&lt;/span&gt;
        &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;PERCENTILE_DISC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;WITHIN&lt;/span&gt; &lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AnnualSalary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
            &lt;span class="n"&gt;OVER&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;PARTITION&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JobTitle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;MedianDisContinous&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;dbo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;
&lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JobTitle&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You perhaps now wonder how the functions PERCENTILE_CONT() and PERCENTILE_DISC differ. The discontinous variant returns an actual value that exists in the calculated set and pointing out that this values is the closest one being to the calculative median. The continous percentile in contrast returns a value that is actually the calculated median. For example, Marketing Assistant Stuart Macrae has an Annual Salary of 59'108. This amount is also the median in this job role, but the calculated median is 59'943.5 so Stuart is slightly below the median but his salary is the closest one to the median.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;JobTitle&lt;/th&gt;
&lt;th&gt;EmployeeName&lt;/th&gt;
&lt;th&gt;AnnualSalary&lt;/th&gt;
&lt;th&gt;AverageSalary&lt;/th&gt;
&lt;th&gt;MedianContinous&lt;/th&gt;
&lt;th&gt;MedianDisContinous&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chief Executive Officer&lt;/td&gt;
&lt;td&gt;Ken Sanchez&lt;/td&gt;
&lt;td&gt;530000&lt;/td&gt;
&lt;td&gt;530000&lt;/td&gt;
&lt;td&gt;530000&lt;/td&gt;
&lt;td&gt;530000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Pat Coleman&lt;/td&gt;
&lt;td&gt;51874&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Mary Dempsey&lt;/td&gt;
&lt;td&gt;57641&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Stuart Macrae&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Wanida Benshoof&lt;/td&gt;
&lt;td&gt;60779&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Jo Berry&lt;/td&gt;
&lt;td&gt;71875&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Assistant&lt;/td&gt;
&lt;td&gt;Lori Penor&lt;/td&gt;
&lt;td&gt;73398&lt;/td&gt;
&lt;td&gt;62445&lt;/td&gt;
&lt;td&gt;59943.5&lt;/td&gt;
&lt;td&gt;59108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Manager&lt;/td&gt;
&lt;td&gt;David Bradley&lt;/td&gt;
&lt;td&gt;130000&lt;/td&gt;
&lt;td&gt;130000&lt;/td&gt;
&lt;td&gt;130000&lt;/td&gt;
&lt;td&gt;130000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Michael Sullivan&lt;/td&gt;
&lt;td&gt;87047&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Sariya Pit&lt;/td&gt;
&lt;td&gt;95048&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;John Wood&lt;/td&gt;
&lt;td&gt;99407&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Terry Eminhizer&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Ovidiu Cracium&lt;/td&gt;
&lt;td&gt;107883&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Jill Williams&lt;/td&gt;
&lt;td&gt;108117&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Specialist&lt;/td&gt;
&lt;td&gt;Rob Walters&lt;/td&gt;
&lt;td&gt;109369&lt;/td&gt;
&lt;td&gt;101883&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;td&gt;106316&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Senior Marketing Specialist&lt;/td&gt;
&lt;td&gt;George Li&lt;/td&gt;
&lt;td&gt;117253&lt;/td&gt;
&lt;td&gt;119212&lt;/td&gt;
&lt;td&gt;118118&lt;/td&gt;
&lt;td&gt;118051&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Senior Marketing Specialist&lt;/td&gt;
&lt;td&gt;Garrett Young&lt;/td&gt;
&lt;td&gt;118051&lt;/td&gt;
&lt;td&gt;119212&lt;/td&gt;
&lt;td&gt;118118&lt;/td&gt;
&lt;td&gt;118051&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Senior Marketing Specialist&lt;/td&gt;
&lt;td&gt;Sandra Alayo&lt;/td&gt;
&lt;td&gt;118185&lt;/td&gt;
&lt;td&gt;119212&lt;/td&gt;
&lt;td&gt;118118&lt;/td&gt;
&lt;td&gt;118051&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Senior Marketing Specialist&lt;/td&gt;
&lt;td&gt;Russell King&lt;/td&gt;
&lt;td&gt;123362&lt;/td&gt;
&lt;td&gt;119212&lt;/td&gt;
&lt;td&gt;118118&lt;/td&gt;
&lt;td&gt;118051&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vice President Marketing&lt;/td&gt;
&lt;td&gt;Denise Smith&lt;/td&gt;
&lt;td&gt;250000&lt;/td&gt;
&lt;td&gt;250000&lt;/td&gt;
&lt;td&gt;250000&lt;/td&gt;
&lt;td&gt;250000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Further reading
&lt;/h2&gt;

&lt;p&gt;This was just an example of what window functions are handy for. More window functions are documented &lt;a href="https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql"&gt;here&lt;/a&gt;. Ranked functions are used quite often to find out what happened over time, e.g. if a status of a product changed. &lt;br&gt;
If you want to dig even deeper into this topic, I recommend (no affiliation) the book &lt;a href="https://www.amazon.com/T-SQL-Window-Functions-Developer-Reference/dp/0135861446/ref=sr_1_1?keywords=T-SQL+Window+Functions%3A+For+data+analysis+and+beyond+%28Developer+Reference%29+%28English+Edition%29&amp;amp;qid=1583591925&amp;amp;sr=8-1"&gt;T-SQL Window Functions: For data analysis and beyond (2nd Edition) (Developer Reference)&lt;/a&gt; by Itzik Ben-Gan. He's authored some excellent books with great knowledge. &lt;/p&gt;

&lt;p&gt;[1]&lt;a&gt;&lt;/a&gt;: &lt;a href="https://en.wikipedia.org/wiki/Foehn_wind"&gt;Fohen wind&lt;/a&gt; is a fairly common wind in the european Alps, which is a reference to the popular sample database &lt;a href="https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/linq/downloading-sample-databases"&gt;Nordwind&lt;/a&gt;. &lt;br&gt;
Cover Photo Credit: &lt;a href="https://pixabay.com/de/users/msandersmusic-1972097/?utm_source=link-attribution&amp;amp;utm_medium=referral&amp;amp;utm_campaign=image&amp;amp;utm_content=1181864"&gt;msandersmusic&lt;/a&gt;, on &lt;a href="https://pixabay.com/de/?utm_source=link-attribution&amp;amp;utm_medium=referral&amp;amp;utm_campaign=image&amp;amp;utm_content=1181864"&gt;Pixabay&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sql</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
