THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

SQLBI - Marco Russo

Please visit the same blog at - comments are now disabled here but you can comment on the new blog (all blog posts available here are available there, too).
You can follow me on Twitter: @marcorus

The Definitive Guide to DAX is now available! #dax #powerpivot #powerbi #ssas #tabular

I am so happy to announce that The Definitive Guide to DAX is finally available!

Cover The Definitive Guide to DAXI and Alberto Ferrari spent one year writing this book, and several years collecting the knowledge necessary to do that. The complete title is The Definitive Guide to DAX: Business intelligence with Microsoft Excel, SQL Server Analysis Services, and Power BI. You can imagine why we like to shorten it! However, the complete title gives you an important hint: this book cover the new DAX syntax of Excel 2016, Power BI Desktop, and Analysis Services 2016. For example, we covered all table functions useful for calculated tables, which is a feature released in Power BI Desktop after we completed the book writing. This has been an additional challenge, but our goal was to publish a book dedicated to the DAX language, independent from the product and completely up-to-date.

But everything has a cost. It took us a huge amount of time to reach the depth and completeness we wanted in this book. And it will took you weeks if not months to read it cover-to-cover. Yes, I know, you no longer read technical books in this way. You open it at the right chapter and you get the content you need, you copy the pattern, you get the good hint. I do that at least once a week. But you will be able to use this book in that way once you have a solid understanding of DAX. At the beginning, my suggestion is to start from chapter 1, even if you are an experienced DAX developer.

What if you are a DAX beginner? This book will be your guide, but you might consider a more introductive book to start (you can find other books from us and from Rob Collie, depending on the product you use and the writing style you prefer). This is particularly important because we don’t spend a line in the book discussing about user interface. We wrote a book about the DAX language, so you have to know in advance the UI of a product that use this language. Today, the list ranges from Excel (2010/2013/2016), Analysis Services (2012/2014/2016), and Power BI Desktop.

Why am I so excited about this book? After all, I wrote many books (this should be the 10th in English, and I wrote other three books in Italian). Well, first of all, after a few months after completing the writing, I and Alberto would not add or modify anything in this book. As you will read in the introduction, we made no compromises. We thought the size would have been 450-500 pages, but the result is 530 pages of content (plus indexes, table of contents, and so on). Is it the perfect book? No, I am pretty sure we will discover some error and something to clarify and to fix. It always happens. But we set the bar very high this time, and we are very satisfied about the final result. Only reviews will tell us if our perception I right, but we know this is the best result possible today. We had technical reviewers that helped us so much in getting the point of view of the reader, and I would like to mention the incredible job made by Gerhard Brueckl. Believe me, if you wrote a technical book, your worst nightmare is the technical reviewer that review too much, so that you spend more time explaining why you were right instead of fixing the content. Well, Gerhard had the skills and the ability to highlight the right thing. Thanks Gerhard, you deserve a public mention!

After this self-celebration, let me spend some paragraph about the content. We use this book as companion content for our courses Mastering DAX *and* Optimizing DAX. During the courses we have hands-on-labs and a lot of interactions, but we constantly refer to the book to get more detailed information about specific functions and behaviors. Thus, if you attend these courses, you will find it easier to read the book. But you will not be able to skip it! Here is the table of contents, with some comments:

  • Foreword: three of the authors of the DAX language and the VertiPaq engine wrote the foreword of our book: Marius Dumitru, Cristian Petculescu, and Jeffrey Wang.
  • Introduction: read the introduction before buying the book. You will understand if it is the book of you or not.
  • Chapter 1: What is DAX?
  • Chapter 2: Introducing DAX
  • Chapter 3: Using basic table functions
  • Chapter 4: Understanding evaluation contexts
  • Chapter 5: Understanding CALCULATE and CALCULATETABLE
  • Chapter 6: DAX examples
  • Chapter 7: Time intelligence calculations
  • Chapter 8: Statistical functions
  • Chapter 9: Advanced table functions
  • Chapter 10: Advanced evaluation context
  • Chapter 11: Handling hierarchies
  • Chapter 12: Advanced relationships
  • Chapter 13: The VertiPaq engine
  • Chapter 14: Optimizing data models
  • Chapter 15: Analyzing DAX query plans
  • Chapter 16: Optimizing DAX

Topics in chapters 1 to 12 are covered in our Mastering DAX workshop. We organized the content so that you can read them one after the other. The content is very dense, at the beginning we use simpler examples, but we never repeat the same concepts, so if you skip one chapter you might miss some knowledge to fully understand the following topics. Even in chapter 6, which tries to consolidate previous content with practical examples, you will find something new in terms of ways you can use DAX.

Topics in chapters 13 to 16 are covered in our Optimizing DAX workshop. Please, don’t jump to this part if you didn’t read the previous chapters before. Also for attendees of the course, we suggest to complete the self-assessment for prerequisites to attend the course, and you can try to do the same for the book. If you are not ready, you will simply see a huge amount of numbers, without understanding how to connect the dots. You need a solid and deep knowledge of how evaluation context works in DAX before doing any optimization.

My personal estimate is that if you dedicate one week to every chapter, you will be able to complete the learning in 4 months. Read the book, absorb the content, make practice. You might be faster at the beginning if you already know DAX. But be careful, you never read anywhere what we describe in chapter 10 (we rewrote that chapter 3 times… but this is another story), and this is of paramount importance to really “understand” DAX. You hardly have seen the complete description of all DAX table functions in chapter 9. You will not find an extensive use of variables, but the VAR / RETURN syntax is described early in the book and you will see this used more and more with the advent of Excel 2016 / Power BI Desktop / SSAS 2016.

Finally, the goal of the book is not to give you patterns and best practices, but to teach you how DAX works, how to write good code, and how to measure the performance, find the bottlenecks and possibly optimize it. As I always say, do not trust any best practice when it comes to DAX optimization. Don’t trust blogs, articles, books. Don’t trust my writings, too. Simply, measure and evaluate case by case. And the reason is the first answer to any question that the consultant receive: it depends!

If you want to order the book on Amazon, here is a quick reference to links in all the available versions of this site:

Have a nice reading!

Published Tuesday, October 20, 2015 9:31 AM by Marco Russo (SQLBI)



100tsky said:

In exchange for that ... giving you the option to become a real DAX expert.

Thank you (spasibo) for your work

Very much

October 20, 2015 4:09 AM

Arthur Jenkins said:

Thank you Marco and Alberto for sharing your knowledge with us. I have been watching for the release of your book. Mine is shipping from Amazon on Friday, Oct 23. I can't wait to get my hands on it.

Arthur Jenkins

Los Angeles, CA

October 20, 2015 2:31 PM

Alex Barbeau said:

Thanks Marco and Alberto! I'm sure I'll spend a few weekends reading up!



October 20, 2015 4:33 PM

Marco Russo (SQLBI) said:

Thank you guys, have a nice reading!

October 20, 2015 5:19 PM

Brian Grant said:

I've been waiting eagerly for this since I ordered it back in Spring. My copy finally showed up Thursday and what little I've been able to find the time to look at is awesome. Really looking forward to a carving out a block of time to really dig into this; I expect to learn a ton. Thanks again for writing!



October 27, 2015 5:11 PM

Palakodeti Bangaru Rayudu said:

Thank you both for excellent book.

I have received my copy from Amazon on 24th Oct'15.


October 27, 2015 11:05 PM

Marco Russo (SQLBI) said:


October 28, 2015 3:10 AM

Garreth said:


I just got this book and am working my way through it. It seems like a reference which will serve me for a long time.

Is there a website/forum where users can ask questions about specific areas?



April 12, 2017 8:57 AM

Marco Russo (SQLBI) said:

Hi Garreth, leave a comment at for this.

May 4, 2017 10:52 PM
New Comments to this post are disabled

About Marco Russo (SQLBI)

Marco Russo is a consultant, writer and trainer specialized in Business Intelligence with Microsoft technologies. He runs the SQLBI.COM website, which is dedicated to distribute resources useful for BI developers, like Integration Services components, Analysis Services models, tools, technical information and so on. Marco is certified as MCT, MCDBA, MCSD.NET, MCSA, MCSE+I.

This Blog



Privacy Statement