Data Analysis Expressions

**Data Analysis Expressions** (**DAX**) er det grunnleggende formel- og spørrespråket for tabellmodeller i Microsoft Power Pivot, Power BI Desktop  og SQL Server Analysis Services (SSAS). DAX inneholder noen av funksjonene som brukes i Excel-formler samt ekstra funksjoner utformet for å fungere med relasjonsdata og utføre dynamisk aggregering. DAX er delvis en utvikling av språket Multidimensional Expression (MDX) utviklet av Microsoft for flerdimensjonale modeller i *Analysis Services* (ofte kalt OLAP-kuber) kombinert med Excel-formelfunksjoner. DAX er designet for å være enkelt å lære, men samtidig ta vare på kraften og fleksibiliteten til tabellmodeller i PowerPivot og SSAS.

## Bakgrunn
DAX-språket gir en spesialisert syntaks for spørring i Analysis Services-tabellmodellen. DAX er ikke en programmeringsspråk. DAX er først og fremst et formelspråk, og er også et spørrespråk (se databaser). Man kan bruke DAX til å definere egendefinerte beregninger for beregnede kolonner, mål, beregnede tabeller, beregningsgrupper, egendefinerte formatstrenger og filteruttrykk for rollebaserte sikkerhet i tabellmodeller. Den samme Analysis Services-motoren for tabellmodeller brukes også i Power BI og Power Pivot for Excel. Power BI bruker også DAX for uttrykk for betinget formatering og andre dynamiske egenskaper for visuelle komponenter.

## Historie
DAX ble utviklet av SQL Server Analysis Services-teamet hos Microsoft som en del av Project Gemini, og ble utgitt i 2009 med den første versjonen av PowerPivot-tillegget for Excel 2010. Både DAX og MDX kan brukes til å spørre Power Pivot- og tabellmodeller, men bare MDX kan brukes til å spørre flerdimensjonale SSAS-modeller (kuber) i versjoner av SSAS opp til SQL Server 2012 RTM. Senere versjoner av SSAS (både flerdimensjonale og tabulære modeller) skulle få grunnleggende støtte for DAX. 2016 markerte en betydelig forbedring med den innføringen av Microsoft Power BI og SQL Server 2016. Power BI er et selvbetjent, abonnementsbasert analyseverktøy, og Power BI Desktop er en skrivebordsversjon hvor man kan forfatte analytiske modeller og rapporteringsmodeller for applikasjoner. SQL Server 2016 inneholder en ny versjon av SQL Analysis Services Tabular med mange forbedringer sammenlignet med tidligere versjoner. Forbedringer i DAX-språket etter 2015 inkluderer støtte for beregnede tabeller, automatisk genereringav datotabeller, variabler og totalt 340 funksjoner.

## Datatyper i DAX
DAX kan beregne verdier for 7 datatyper:

* Heltall
* Reelle tall
* Valuta
* Dato eller dato og tid (kalt *datetime*)
* Boolske verdier (sann eller usann)
* Streng
* Variant, spesiell datatype som kan inneholde alle data unntatt strenger med fast lengde, inkludert spesielle verdier som Empty, Error, Nothing og Null.

Datatypen stort binært objekt (BLOB) kan håndteres av Tabular-modellen, men kan ikke manipuleres direkte av DAX-uttrykk.

DAX har et kraftig typehåndteringssystem slik at man ikke skal behøve å bekymre seg så mye om datatyper. Når man skriver et DAX-uttrykk er den resulterende datatypen basert på typen som brukes i uttrykket og operatoren som brukes. Typeomforming skjer automatisk under evalueringen av uttrykket. Imidlertid defineres datatypen for uttrykket som *variant* dersom et uttrykk kan returnere forskjellige datatyper avhengig av betingelsene.

## Referanser