@gooddata/sdk-maql-language-server 0.0.0-stage → 11.65.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +118 -2
  3. package/esm/completions/complete.d.ts +12 -0
  4. package/esm/completions/complete.d.ts.map +1 -0
  5. package/esm/completions/complete.js +316 -0
  6. package/esm/completions/descriptions.d.ts +42 -0
  7. package/esm/completions/descriptions.d.ts.map +1 -0
  8. package/esm/completions/descriptions.js +290 -0
  9. package/esm/completions/findContext.d.ts +19 -0
  10. package/esm/completions/findContext.d.ts.map +1 -0
  11. package/esm/completions/findContext.js +172 -0
  12. package/esm/completions/functionDescriptions.d.ts +3 -0
  13. package/esm/completions/functionDescriptions.d.ts.map +1 -0
  14. package/esm/completions/functionDescriptions.js +99 -0
  15. package/esm/completions/sort.d.ts +4 -0
  16. package/esm/completions/sort.d.ts.map +1 -0
  17. package/esm/completions/sort.js +88 -0
  18. package/esm/constants.d.ts +21 -0
  19. package/esm/constants.d.ts.map +1 -0
  20. package/esm/constants.js +22 -0
  21. package/esm/dateElementFormat.d.ts +9 -0
  22. package/esm/dateElementFormat.d.ts.map +1 -0
  23. package/esm/dateElementFormat.js +60 -0
  24. package/esm/decorations.d.ts +39 -0
  25. package/esm/decorations.d.ts.map +1 -0
  26. package/esm/decorations.js +42 -0
  27. package/esm/diagnostics.d.ts +12 -0
  28. package/esm/diagnostics.d.ts.map +1 -0
  29. package/esm/diagnostics.js +260 -0
  30. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.d.ts +2 -0
  31. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.d.ts.map +1 -0
  32. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.js +61 -0
  33. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.d.ts +2 -0
  34. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.d.ts.map +1 -0
  35. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.js +19 -0
  36. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.d.ts +2 -0
  37. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.d.ts.map +1 -0
  38. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.js +72 -0
  39. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.d.ts +2 -0
  40. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.d.ts.map +1 -0
  41. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.js +41 -0
  42. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.d.ts +2 -0
  43. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.d.ts.map +1 -0
  44. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.js +69 -0
  45. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.d.ts +2 -0
  46. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.d.ts.map +1 -0
  47. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.js +61 -0
  48. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.d.ts +2 -0
  49. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.d.ts.map +1 -0
  50. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.js +25 -0
  51. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.d.ts +2 -0
  52. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.d.ts.map +1 -0
  53. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.js +63 -0
  54. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.d.ts +2 -0
  55. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.d.ts.map +1 -0
  56. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.js +20 -0
  57. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.d.ts +2 -0
  58. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.d.ts.map +1 -0
  59. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.js +73 -0
  60. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.d.ts +2 -0
  61. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.d.ts.map +1 -0
  62. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.js +29 -0
  63. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.d.ts +2 -0
  64. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.d.ts.map +1 -0
  65. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.js +96 -0
  66. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.d.ts +2 -0
  67. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.d.ts.map +1 -0
  68. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.js +71 -0
  69. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.d.ts +2 -0
  70. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.d.ts.map +1 -0
  71. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.js +65 -0
  72. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.d.ts +2 -0
  73. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.d.ts.map +1 -0
  74. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.js +36 -0
  75. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.d.ts +2 -0
  76. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.d.ts.map +1 -0
  77. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.js +36 -0
  78. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.d.ts +2 -0
  79. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.d.ts.map +1 -0
  80. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.js +21 -0
  81. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.d.ts +2 -0
  82. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.d.ts.map +1 -0
  83. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.js +27 -0
  84. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.d.ts +2 -0
  85. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.d.ts.map +1 -0
  86. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.js +64 -0
  87. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.d.ts +2 -0
  88. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.d.ts.map +1 -0
  89. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.js +22 -0
  90. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.d.ts +2 -0
  91. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.d.ts.map +1 -0
  92. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.js +85 -0
  93. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.d.ts +2 -0
  94. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.d.ts.map +1 -0
  95. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.js +37 -0
  96. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.d.ts +2 -0
  97. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.d.ts.map +1 -0
  98. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.js +42 -0
  99. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.d.ts +2 -0
  100. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.d.ts.map +1 -0
  101. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.js +94 -0
  102. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.d.ts +2 -0
  103. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.d.ts.map +1 -0
  104. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.js +33 -0
  105. package/esm/docs/en/docs/create-metrics/maql/for-each.d.ts +2 -0
  106. package/esm/docs/en/docs/create-metrics/maql/for-each.d.ts.map +1 -0
  107. package/esm/docs/en/docs/create-metrics/maql/for-each.js +17 -0
  108. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.d.ts +2 -0
  109. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.d.ts.map +1 -0
  110. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.js +37 -0
  111. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.d.ts +2 -0
  112. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.d.ts.map +1 -0
  113. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.js +12 -0
  114. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.d.ts +2 -0
  115. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.d.ts.map +1 -0
  116. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.js +22 -0
  117. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.d.ts +2 -0
  118. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.d.ts.map +1 -0
  119. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.js +59 -0
  120. package/esm/docs/en/docs/create-metrics/maql/math/abs.d.ts +2 -0
  121. package/esm/docs/en/docs/create-metrics/maql/math/abs.d.ts.map +1 -0
  122. package/esm/docs/en/docs/create-metrics/maql/math/abs.js +23 -0
  123. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.d.ts +2 -0
  124. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.d.ts.map +1 -0
  125. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.js +29 -0
  126. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.d.ts +2 -0
  127. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.d.ts.map +1 -0
  128. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.js +21 -0
  129. package/esm/docs/en/docs/create-metrics/maql/math/exp.d.ts +2 -0
  130. package/esm/docs/en/docs/create-metrics/maql/math/exp.d.ts.map +1 -0
  131. package/esm/docs/en/docs/create-metrics/maql/math/exp.js +27 -0
  132. package/esm/docs/en/docs/create-metrics/maql/math/floor.d.ts +2 -0
  133. package/esm/docs/en/docs/create-metrics/maql/math/floor.d.ts.map +1 -0
  134. package/esm/docs/en/docs/create-metrics/maql/math/floor.js +21 -0
  135. package/esm/docs/en/docs/create-metrics/maql/math/greatest.d.ts +2 -0
  136. package/esm/docs/en/docs/create-metrics/maql/math/greatest.d.ts.map +1 -0
  137. package/esm/docs/en/docs/create-metrics/maql/math/greatest.js +13 -0
  138. package/esm/docs/en/docs/create-metrics/maql/math/least.d.ts +2 -0
  139. package/esm/docs/en/docs/create-metrics/maql/math/least.d.ts.map +1 -0
  140. package/esm/docs/en/docs/create-metrics/maql/math/least.js +13 -0
  141. package/esm/docs/en/docs/create-metrics/maql/math/ln.d.ts +2 -0
  142. package/esm/docs/en/docs/create-metrics/maql/math/ln.d.ts.map +1 -0
  143. package/esm/docs/en/docs/create-metrics/maql/math/ln.js +33 -0
  144. package/esm/docs/en/docs/create-metrics/maql/math/log.d.ts +2 -0
  145. package/esm/docs/en/docs/create-metrics/maql/math/log.d.ts.map +1 -0
  146. package/esm/docs/en/docs/create-metrics/maql/math/log.js +29 -0
  147. package/esm/docs/en/docs/create-metrics/maql/math/power.d.ts +2 -0
  148. package/esm/docs/en/docs/create-metrics/maql/math/power.d.ts.map +1 -0
  149. package/esm/docs/en/docs/create-metrics/maql/math/power.js +33 -0
  150. package/esm/docs/en/docs/create-metrics/maql/math/round.d.ts +2 -0
  151. package/esm/docs/en/docs/create-metrics/maql/math/round.d.ts.map +1 -0
  152. package/esm/docs/en/docs/create-metrics/maql/math/round.js +34 -0
  153. package/esm/docs/en/docs/create-metrics/maql/math/sign.d.ts +2 -0
  154. package/esm/docs/en/docs/create-metrics/maql/math/sign.d.ts.map +1 -0
  155. package/esm/docs/en/docs/create-metrics/maql/math/sign.js +30 -0
  156. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.d.ts +2 -0
  157. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.d.ts.map +1 -0
  158. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.js +32 -0
  159. package/esm/docs/en/docs/create-metrics/maql/math/trunc.d.ts +2 -0
  160. package/esm/docs/en/docs/create-metrics/maql/math/trunc.d.ts.map +1 -0
  161. package/esm/docs/en/docs/create-metrics/maql/math/trunc.js +36 -0
  162. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.d.ts +2 -0
  163. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.d.ts.map +1 -0
  164. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.js +57 -0
  165. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.d.ts +2 -0
  166. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.d.ts.map +1 -0
  167. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.js +90 -0
  168. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.d.ts +2 -0
  169. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.d.ts.map +1 -0
  170. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.js +53 -0
  171. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.d.ts +2 -0
  172. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.d.ts.map +1 -0
  173. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.js +29 -0
  174. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.d.ts +2 -0
  175. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.d.ts.map +1 -0
  176. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.js +101 -0
  177. package/esm/docs/en/docs/create-metrics/maql/relational-operators.d.ts +2 -0
  178. package/esm/docs/en/docs/create-metrics/maql/relational-operators.d.ts.map +1 -0
  179. package/esm/docs/en/docs/create-metrics/maql/relational-operators.js +50 -0
  180. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.d.ts +2 -0
  181. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.d.ts.map +1 -0
  182. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.js +71 -0
  183. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.d.ts +2 -0
  184. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.d.ts.map +1 -0
  185. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.js +54 -0
  186. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.d.ts +2 -0
  187. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.d.ts.map +1 -0
  188. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.js +37 -0
  189. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.d.ts +2 -0
  190. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.d.ts.map +1 -0
  191. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.js +47 -0
  192. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.d.ts +2 -0
  193. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.d.ts.map +1 -0
  194. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.js +46 -0
  195. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.d.ts +2 -0
  196. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.d.ts.map +1 -0
  197. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.js +74 -0
  198. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.d.ts +2 -0
  199. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.d.ts.map +1 -0
  200. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.js +44 -0
  201. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.d.ts +2 -0
  202. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.d.ts.map +1 -0
  203. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.js +88 -0
  204. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.d.ts +2 -0
  205. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.d.ts.map +1 -0
  206. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.js +54 -0
  207. package/esm/docs/en/docs/create-metrics/maql/time/for-each.d.ts +2 -0
  208. package/esm/docs/en/docs/create-metrics/maql/time/for-each.d.ts.map +1 -0
  209. package/esm/docs/en/docs/create-metrics/maql/time/for-each.js +96 -0
  210. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.d.ts +2 -0
  211. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.d.ts.map +1 -0
  212. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.js +38 -0
  213. package/esm/docs/en/docs/create-metrics/maql/time/for-next.d.ts +2 -0
  214. package/esm/docs/en/docs/create-metrics/maql/time/for-next.d.ts.map +1 -0
  215. package/esm/docs/en/docs/create-metrics/maql/time/for-next.js +27 -0
  216. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.d.ts +2 -0
  217. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.d.ts.map +1 -0
  218. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.js +26 -0
  219. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.d.ts +2 -0
  220. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.d.ts.map +1 -0
  221. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.js +30 -0
  222. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.d.ts +2 -0
  223. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.d.ts.map +1 -0
  224. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.js +36 -0
  225. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.d.ts +2 -0
  226. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.d.ts.map +1 -0
  227. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.js +53 -0
  228. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.d.ts +2 -0
  229. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.d.ts.map +1 -0
  230. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.js +55 -0
  231. package/esm/docs/en/docs/create-metrics/maql/time-macros.d.ts +2 -0
  232. package/esm/docs/en/docs/create-metrics/maql/time-macros.d.ts.map +1 -0
  233. package/esm/docs/en/docs/create-metrics/maql/time-macros.js +79 -0
  234. package/esm/docs/index.d.ts +77 -0
  235. package/esm/docs/index.d.ts.map +1 -0
  236. package/esm/docs/index.js +141 -0
  237. package/esm/findObjects.d.ts +13 -0
  238. package/esm/findObjects.d.ts.map +1 -0
  239. package/esm/findObjects.js +72 -0
  240. package/esm/format.d.ts +4 -0
  241. package/esm/format.d.ts.map +1 -0
  242. package/esm/format.js +581 -0
  243. package/esm/highlight/convert.d.ts +3 -0
  244. package/esm/highlight/convert.d.ts.map +1 -0
  245. package/esm/highlight/convert.js +12 -0
  246. package/esm/highlight/semanticsHighlight.d.ts +29 -0
  247. package/esm/highlight/semanticsHighlight.d.ts.map +1 -0
  248. package/esm/highlight/semanticsHighlight.js +326 -0
  249. package/esm/highlight/utils.d.ts +3 -0
  250. package/esm/highlight/utils.d.ts.map +1 -0
  251. package/esm/highlight/utils.js +14 -0
  252. package/esm/hover.d.ts +17 -0
  253. package/esm/hover.d.ts.map +1 -0
  254. package/esm/hover.js +60 -0
  255. package/esm/index.d.ts +9 -0
  256. package/esm/index.d.ts.map +1 -0
  257. package/esm/index.js +7 -0
  258. package/esm/labelElements.d.ts +22 -0
  259. package/esm/labelElements.d.ts.map +1 -0
  260. package/esm/labelElements.js +225 -0
  261. package/esm/maqlLanguageService.d.ts +51 -0
  262. package/esm/maqlLanguageService.d.ts.map +1 -0
  263. package/esm/maqlLanguageService.js +102 -0
  264. package/esm/maqlObjectTypes.d.ts +15 -0
  265. package/esm/maqlObjectTypes.d.ts.map +1 -0
  266. package/esm/maqlObjectTypes.js +28 -0
  267. package/esm/maqlServer.d.ts +4 -0
  268. package/esm/maqlServer.d.ts.map +1 -0
  269. package/esm/maqlServer.js +78 -0
  270. package/esm/metadata/model.d.ts +116 -0
  271. package/esm/metadata/model.d.ts.map +1 -0
  272. package/esm/metadata/model.js +137 -0
  273. package/esm/metadata/parameters.d.ts +16 -0
  274. package/esm/metadata/parameters.d.ts.map +1 -0
  275. package/esm/metadata/parameters.js +38 -0
  276. package/esm/metadata/types.d.ts +14 -0
  277. package/esm/metadata/types.d.ts.map +1 -0
  278. package/esm/metadata/types.js +2 -0
  279. package/esm/metadataService.d.ts +50 -0
  280. package/esm/metadataService.d.ts.map +1 -0
  281. package/esm/metadataService.js +156 -0
  282. package/esm/node/main.d.ts +2 -0
  283. package/esm/node/main.d.ts.map +1 -0
  284. package/esm/node/main.js +18 -0
  285. package/esm/parameterConstraints.d.ts +5 -0
  286. package/esm/parameterConstraints.d.ts.map +1 -0
  287. package/esm/parameterConstraints.js +198 -0
  288. package/esm/parseMaql.d.ts +43 -0
  289. package/esm/parseMaql.d.ts.map +1 -0
  290. package/esm/parseMaql.js +97 -0
  291. package/esm/renderParameters.d.ts +33 -0
  292. package/esm/renderParameters.d.ts.map +1 -0
  293. package/esm/renderParameters.js +72 -0
  294. package/esm/tests/metadata.test.helpers.d.ts +8 -0
  295. package/esm/tests/metadata.test.helpers.d.ts.map +1 -0
  296. package/esm/tests/metadata.test.helpers.js +468 -0
  297. package/esm/tokenRanges.d.ts +36 -0
  298. package/esm/tokenRanges.d.ts.map +1 -0
  299. package/esm/tokenRanges.js +54 -0
  300. package/esm/types/hierarchy.d.ts +37 -0
  301. package/esm/types/hierarchy.d.ts.map +1 -0
  302. package/esm/types/hierarchy.js +165 -0
  303. package/esm/types/signatures.d.ts +40 -0
  304. package/esm/types/signatures.d.ts.map +1 -0
  305. package/esm/types/signatures.js +142 -0
  306. package/esm/types/typeChecking.d.ts +56 -0
  307. package/esm/types/typeChecking.d.ts.map +1 -0
  308. package/esm/types/typeChecking.js +296 -0
  309. package/esm/types/typeModel.d.ts +18 -0
  310. package/esm/types/typeModel.d.ts.map +1 -0
  311. package/esm/types/typeModel.js +84 -0
  312. package/package.json +89 -3
@@ -0,0 +1,96 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# IFNULL
3
+ IFNULL statement allows you to control replacement of missing values that are returned by an expression.
4
+
5
+ If a metric expression that is wrapped within an IFNULL statement ever returns a null value, the replacement number specified in the second parameter of the IFNULL function is inserted in place of the null value.
6
+
7
+ IFNULL is useful especially in cases where a sub-metric is referred to within another metric's definition. Wrapping the sub metric in an IFNULL statement keeps the encompassing metric from becoming null due to one of its components returning a null value.
8
+
9
+ ## Syntax
10
+
11
+ \`\`\`
12
+ SELECT IFNULL(…,…)
13
+ SELECT IFNULL(metric, replacement_value)
14
+ \`\`\`
15
+
16
+ ## Examples
17
+
18
+ \`\`\`
19
+ SELECT IFNULL(SUM({fact/amount}), 0)
20
+ SELECT IFNULL(SUM({metric/fb_cost} + {metric/tw_cost}), 0)
21
+ SELECT IFNULL(SUM({fact/amount}) + 100, 1)
22
+ \`\`\`
23
+
24
+ Supported replacement values include constants, but not other metric expressions.
25
+
26
+ ## IFNULL Best Practices
27
+
28
+ The IFNULL function is used to replace missing values in fact tables and to replace values when a computation generates a null value.
29
+
30
+ A null value is not the same thing as zero (0). A null value means one of the following:
31
+
32
+ - no entry has been made
33
+ - the value is unknown
34
+
35
+ The IFNULL function can be useful for handling or trapping values that are null, which can confuse your analysis.
36
+
37
+ However, the function should not be overused, as it can add significant computing time and consume workspace computational bandwidth.
38
+
39
+ Do not apply IFNULL to all of your functions or even your basic sum, average, and count functions. Instead, use IFNULL where the presence of null values is causing confusion or ambiguity in the visualizations you have created.
40
+
41
+ Wrapping a metric in the IFNULL statement enables operations where one of the values is null. The syntax for this statement looks like the following:
42
+
43
+ \`\`\`
44
+ SELECT IFNULL(metric_reference, replacement_value)
45
+ \`\`\`
46
+
47
+ The IFNULL function can be applied to facts, too.
48
+
49
+ \`\`\`
50
+ SELECT IFNULL(fact_name, replacement_value)
51
+ \`\`\`
52
+
53
+ **Example - Data with a missing line item**
54
+
55
+ An IFNULL does not mean that there is a blank or missing line item.
56
+
57
+ Suppose your data looks like the following:
58
+
59
+ |Date | Sales Amounts|
60
+ |------------| ---------------|
61
+ |08/01/2013 | $3,000|
62
+ |08/02/2013 | $5,700|
63
+ |08/03/2013 | $2,000|
64
+ |08/05/2013 | $4,400|
65
+
66
+ Wrapping the \`Sales Amount\` metric in an IFNULL function does not make data for 08/04/2013 appear because there isn't any data for that day.
67
+
68
+ The IFNULL function does not populate rows of data when the row does not exist. Instead, IFNULL forces a value to appear when the value is blank.
69
+
70
+ **Example - IFNULL and arithmetic operations**
71
+
72
+ The prime example of when to use IFNULL is when you are performing an arithmetic operation, and one of the values could potentially be null.
73
+
74
+ Suppose you have different types of transactions: payments, refunds, and partial refunds. You have two metrics to measure payments ( \`# Payments\` ) and refunds ( \`# Refunds\` ):
75
+
76
+ \`\`\`
77
+ SELECT COUNT({attribute/transaction_id}) WHERE {attribute/transaction_type} = "Sale"
78
+ SELECT COUNT({attribute/transaction_id}) WHERE {attribute/transaction_type} IN ("Full Refund", "Partial Refund")
79
+ \`\`\`
80
+
81
+ Now, suppose your daily analysis calculates the difference between the number of payments received and the refunds processed. The difference metric should look like the following:
82
+
83
+ \`\`\`
84
+ SELECT {metric/no_of_payments} - {metric/no_of_refunds}
85
+ \`\`\`
86
+
87
+ However, your enterprise does not process refunds every day. If no refunds are processed for a day, the above metric generates a null value, even if there are payments.
88
+
89
+ If one of the values within an expression is null, the entire expression is null. Use \`IFNULL\` to preserve the computation.
90
+
91
+ To solve this problem, you would wrap the expressions in the IFNULL function like the following:
92
+
93
+ \`\`\`
94
+ SELECT IFNULL({metric/no_of_payments},0) - IFNULL({metric/no_of_refunds},0)
95
+ \`\`\`
96
+ If a refund was not processed for the day, the calculation can still be performed.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# Using Ranking Filters\nIn this article, you will learn how to use the MAQL's TOP and BOTTOM ranking filters.\n\nSo far we have discussed two types of filters:\n\n- Attribute filters in expressions such as the original definition of\n Revenue:\n\n ```\n SELECT {metric/revenue} WHERE {label/order_status} NOT IN (\"Cancelled\", \"Returned\")\n ```\n\n- Numeric filters defined using submetrics such as\n\n ```\n SELECT {metric/revenue} WHERE (SELECT {metric/revenue} BY {label/product_id}) > 100000\n ```\n\nWhat if you want to compute only the revenue for the top 10 highest\nselling products? Or top 10%?\n\nThis is why MAQL includes the TOP keyword (and the corresponding\nBOTTOM).\n\nLet's try to create a few metrics to see these keywords in action:\n\n**Revenue / Top 10**\n\n```\nSELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})\n```\n\nLet's put this metric into a table together with the original Revenue\nmetric and slice it by Product. While the Revenue metrics shows Revenue\nfor each product, the cells in the `Revenue / Top 10` column are empty\nexcept for the top highest numbers. However, if you replace the Product\nattribute with Customer, the Top 10 metric gives us non-zero numbers for\nthe top 10 customers.\n\n![top 10 example](https://www.gooddata.com/developers/cloud-native/doc/maql/top-10-example.gif)\n\nThat is flexible but not exactly what you want to achieve. If you\nwant to compute Revenue from the top 10 highest selling products, you\nhave to express that you care only about top Products somewhere in our\nmetric. you can achieve that using the submetric aggregated by Product\nusing the BY keyword. Let's define our Revenue / Top 10 Products as\n\n```\nSELECT {metric/revenue} WHERE (SELECT {metric/revenue} / Top 10 BY {label/product_id}) > 0\n```\n\nAlternatively, if you do not see any use for having the separate `Revenue /\nTop 10` metric, you can delete it and define your `Revenue / Top 10 Products`\nas\n\n```\nSELECT {metric/revenue}\nWHERE (SELECT (SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})) BY {label/product_id}) > 0\n```\n\nDo you care about the top 10% rather than about just the top 10? Just\nadd the percent sign:\n\n```\nSELECT {metric/revenue}\nWHERE (SELECT (SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})) BY {label/product_id}) > 0\n```\n\nWe will leave the BOTTOM keyword up to the kind reader as homework and\nfocus on yet another feature of the ranking metrics.";
2
+ //# sourceMappingURL=filtering-with-ranking-filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering-with-ranking-filters.d.ts","sourceRoot":"","sources":["../../../../../../../src/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,+7EAqEiC,CAAC"}
@@ -0,0 +1,71 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# Using Ranking Filters
3
+ In this article, you will learn how to use the MAQL's TOP and BOTTOM ranking filters.
4
+
5
+ So far we have discussed two types of filters:
6
+
7
+ - Attribute filters in expressions such as the original definition of
8
+ Revenue:
9
+
10
+ \`\`\`
11
+ SELECT {metric/revenue} WHERE {label/order_status} NOT IN ("Cancelled", "Returned")
12
+ \`\`\`
13
+
14
+ - Numeric filters defined using submetrics such as
15
+
16
+ \`\`\`
17
+ SELECT {metric/revenue} WHERE (SELECT {metric/revenue} BY {label/product_id}) > 100000
18
+ \`\`\`
19
+
20
+ What if you want to compute only the revenue for the top 10 highest
21
+ selling products? Or top 10%?
22
+
23
+ This is why MAQL includes the TOP keyword (and the corresponding
24
+ BOTTOM).
25
+
26
+ Let's try to create a few metrics to see these keywords in action:
27
+
28
+ **Revenue / Top 10**
29
+
30
+ \`\`\`
31
+ SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})
32
+ \`\`\`
33
+
34
+ Let's put this metric into a table together with the original Revenue
35
+ metric and slice it by Product. While the Revenue metrics shows Revenue
36
+ for each product, the cells in the \`Revenue / Top 10\` column are empty
37
+ except for the top highest numbers. However, if you replace the Product
38
+ attribute with Customer, the Top 10 metric gives us non-zero numbers for
39
+ the top 10 customers.
40
+
41
+ ![top 10 example](https://www.gooddata.com/developers/cloud-native/doc/maql/top-10-example.gif)
42
+
43
+ That is flexible but not exactly what you want to achieve. If you
44
+ want to compute Revenue from the top 10 highest selling products, you
45
+ have to express that you care only about top Products somewhere in our
46
+ metric. you can achieve that using the submetric aggregated by Product
47
+ using the BY keyword. Let's define our Revenue / Top 10 Products as
48
+
49
+ \`\`\`
50
+ SELECT {metric/revenue} WHERE (SELECT {metric/revenue} / Top 10 BY {label/product_id}) > 0
51
+ \`\`\`
52
+
53
+ Alternatively, if you do not see any use for having the separate \`Revenue /
54
+ Top 10\` metric, you can delete it and define your \`Revenue / Top 10 Products\`
55
+ as
56
+
57
+ \`\`\`
58
+ SELECT {metric/revenue}
59
+ WHERE (SELECT (SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue})) BY {label/product_id}) > 0
60
+ \`\`\`
61
+
62
+ Do you care about the top 10% rather than about just the top 10? Just
63
+ add the percent sign:
64
+
65
+ \`\`\`
66
+ SELECT {metric/revenue}
67
+ WHERE (SELECT (SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})) BY {label/product_id}) > 0
68
+ \`\`\`
69
+
70
+ We will leave the BOTTOM keyword up to the kind reader as homework and
71
+ focus on yet another feature of the ranking metrics.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# Filtering with the HAVING Clause\nUsing the HAVING filter enables you to apply filtration to a metric\nafter all containing metrics and aggregation functions have been\ncomputed.\n\nIn MAQL, the WHERE clause is used to perform basic filtration on your\ndata before it has been aggregated. In some cases, you may want to\nfilter your metric data after it has been aggregated, so that you can\nmake conditional evaluations based on the results of the computations\nwithin the metric.\n\nHAVING clause filtration is applied after all other conditions of the\nmetric have been resolved.\n\nYou cannot apply the HAVING keyword in a metric that contains a\nWHERE clause.\n\n## Syntax\n\n```\nSELECT ... HAVING ...\n```\n\nIf your metric contains multiple keywords, they must be listed in alphabetical order:\n\n```\nSELECT (...) (BY ...) (FOR ...) (WHERE...|HAVING ...) (WITH PF|WITHOUT PF)\n```\n\n### Restrictions\n\nSuppose you have created a metric containing the following: \n\n```\nSELECT SUM({fact/sales}) BY {label/date.quarter}, {attribute/product_id} HAVING {label/region} = \"West\"\n```\n\nHowever, since there is no direct relationship between Quarter and\nRegion or between Product and Region, the HAVING clause conditions are\nignored.\n\nHowever, if the HAVING clause included Quarter, Year, Product, or\nProduct Category, then the filter would be applied.\n\nA HAVING filter is only applied if the data model supports its\nevaluation.\n\n## Examples\n\n```\nSELECT SUM({fact/sales}) BY {label/date.quarter}, {attribute/product_id} HAVING {label/region} = \"West\"\n```\n\n```\nSELECT SUM({fact/amount}) BY {attribute/region}, {label/date.quarter} HAVING {label/date.year} = \"2014\"\n```\n\n```\nSELECT SUM({fact/amount}) BY {label/date.quarter} FOR PREVIOUS({label/date.quarter}) HAVING {label/date.quarter} = \"2014\" WITHOUT PARENT FILTER\n```\n\nThe last MAQL statement above returns values for amount for the quarter\nbefore this one, displaying only results from 2014. No parent filters\nare applied.";
2
+ //# sourceMappingURL=filtering-with-the-having-clause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering-with-the-having-clause.d.ts","sourceRoot":"","sources":["../../../../../../../src/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,w+DA+DP,CAAC"}
@@ -0,0 +1,65 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# Filtering with the HAVING Clause
3
+ Using the HAVING filter enables you to apply filtration to a metric
4
+ after all containing metrics and aggregation functions have been
5
+ computed.
6
+
7
+ In MAQL, the WHERE clause is used to perform basic filtration on your
8
+ data before it has been aggregated. In some cases, you may want to
9
+ filter your metric data after it has been aggregated, so that you can
10
+ make conditional evaluations based on the results of the computations
11
+ within the metric.
12
+
13
+ HAVING clause filtration is applied after all other conditions of the
14
+ metric have been resolved.
15
+
16
+ You cannot apply the HAVING keyword in a metric that contains a
17
+ WHERE clause.
18
+
19
+ ## Syntax
20
+
21
+ \`\`\`
22
+ SELECT ... HAVING ...
23
+ \`\`\`
24
+
25
+ If your metric contains multiple keywords, they must be listed in alphabetical order:
26
+
27
+ \`\`\`
28
+ SELECT (...) (BY ...) (FOR ...) (WHERE...|HAVING ...) (WITH PF|WITHOUT PF)
29
+ \`\`\`
30
+
31
+ ### Restrictions
32
+
33
+ Suppose you have created a metric containing the following:
34
+
35
+ \`\`\`
36
+ SELECT SUM({fact/sales}) BY {label/date.quarter}, {attribute/product_id} HAVING {label/region} = "West"
37
+ \`\`\`
38
+
39
+ However, since there is no direct relationship between Quarter and
40
+ Region or between Product and Region, the HAVING clause conditions are
41
+ ignored.
42
+
43
+ However, if the HAVING clause included Quarter, Year, Product, or
44
+ Product Category, then the filter would be applied.
45
+
46
+ A HAVING filter is only applied if the data model supports its
47
+ evaluation.
48
+
49
+ ## Examples
50
+
51
+ \`\`\`
52
+ SELECT SUM({fact/sales}) BY {label/date.quarter}, {attribute/product_id} HAVING {label/region} = "West"
53
+ \`\`\`
54
+
55
+ \`\`\`
56
+ SELECT SUM({fact/amount}) BY {attribute/region}, {label/date.quarter} HAVING {label/date.year} = "2014"
57
+ \`\`\`
58
+
59
+ \`\`\`
60
+ SELECT SUM({fact/amount}) BY {label/date.quarter} FOR PREVIOUS({label/date.quarter}) HAVING {label/date.quarter} = "2014" WITHOUT PARENT FILTER
61
+ \`\`\`
62
+
63
+ The last MAQL statement above returns values for amount for the quarter
64
+ before this one, displaying only results from 2014. No parent filters
65
+ are applied.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# Filtering with the LIKE Clause\nThe LIKE clause is a filtering condition designed to search\nattribute-label string values to match a specified pattern.\n\nThe LIKE clause can be used with the following criteria:\n\n- **LIKE** - filters for the string pattern and is case sensitive.\n\n- **ILIKE** - filters for the string pattern and is case insensitive.\n\n- **NOT LIKE** - returns anything not defined in the string pattern\n and is case sensitive .\n\n- **NOT ILIKE** - returns anything not defined in the string pattern\n and is case insensitive .\n\n**Wildcards**\n\n- An underscore (_) matches any single character.\n\n- A percentage sign (%) matches any string of zero or more\n characters.\n\nTo match underscore or percent sign without matching other characters,\nthe character in the pattern must be preceded by two backslash\ncharacters (e.g. *\"\\\\%\"*).\n\n**Example**\n\n```\nSELECT SUM({metric/revenue}) WHERE {label/product_name} LIKE \"%red%\"\n```\n\nThe revenue comes from products containing \"red\" in the Product Name\nlabel of attribute Product.";
2
+ //# sourceMappingURL=filtering-with-the-like-clause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering-with-the-like-clause.d.ts","sourceRoot":"","sources":["../../../../../../../src/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,8kCAkCQ,CAAC"}
@@ -0,0 +1,36 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# Filtering with the LIKE Clause
3
+ The LIKE clause is a filtering condition designed to search
4
+ attribute-label string values to match a specified pattern.
5
+
6
+ The LIKE clause can be used with the following criteria:
7
+
8
+ - **LIKE** - filters for the string pattern and is case sensitive.
9
+
10
+ - **ILIKE** - filters for the string pattern and is case insensitive.
11
+
12
+ - **NOT LIKE** - returns anything not defined in the string pattern
13
+ and is case sensitive .
14
+
15
+ - **NOT ILIKE** - returns anything not defined in the string pattern
16
+ and is case insensitive .
17
+
18
+ **Wildcards**
19
+
20
+ - An underscore (_) matches any single character.
21
+
22
+ - A percentage sign (%) matches any string of zero or more
23
+ characters.
24
+
25
+ To match underscore or percent sign without matching other characters,
26
+ the character in the pattern must be preceded by two backslash
27
+ characters (e.g. *\"\\\\%\"*).
28
+
29
+ **Example**
30
+
31
+ \`\`\`
32
+ SELECT SUM({metric/revenue}) WHERE {label/product_name} LIKE "%red%"
33
+ \`\`\`
34
+
35
+ The revenue comes from products containing \"red\" in the Product Name
36
+ label of attribute Product.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# Filtering with the WHERE Clause\nAfter you have aggregated a fact to form the foundations of a metric,\nyou can use MAQL syntax to add filters to your metric definition.\nFilters are optional features that can be used to narrow the set of data\nfrom which a metric is computed. With logical expressions, you can also\ncombine two or more filters within a single metric definition.\n\nThe basic syntax for filters uses the word WHERE to introduce the filter\nexpression:\n\n```\nSELECT ... WHERE ...\n```\n\nThis section will explore several types of syntax for customizing metric\nfilters:\n\n- Special operators for defining filters\n - Example:\n\n ```\n SELECT {metric/revenue} WHERE {label/date.year} = \"2006\"\n ```\n- Time macros for filtering for floating time periods:\n - Example:\n\n ```\n SELECT {metric/payment} WHERE {attribute/date} = THIS \u2013 1\n ```\n- Logical expressions for combining filters\n - Example:\n\n ```\n SELECT {metric/revenue} WHERE {label/date.year} = \"2006\" AND {label/date.month} = \"5\"\n ```";
2
+ //# sourceMappingURL=filtering-with-the-where-clause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering-with-the-where-clause.d.ts","sourceRoot":"","sources":["../../../../../../../src/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,omCAkCL,CAAC"}
@@ -0,0 +1,36 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# Filtering with the WHERE Clause
3
+ After you have aggregated a fact to form the foundations of a metric,
4
+ you can use MAQL syntax to add filters to your metric definition.
5
+ Filters are optional features that can be used to narrow the set of data
6
+ from which a metric is computed. With logical expressions, you can also
7
+ combine two or more filters within a single metric definition.
8
+
9
+ The basic syntax for filters uses the word WHERE to introduce the filter
10
+ expression:
11
+
12
+ \`\`\`
13
+ SELECT ... WHERE ...
14
+ \`\`\`
15
+
16
+ This section will explore several types of syntax for customizing metric
17
+ filters:
18
+
19
+ - Special operators for defining filters
20
+ - Example:
21
+
22
+ \`\`\`
23
+ SELECT {metric/revenue} WHERE {label/date.year} = "2006"
24
+ \`\`\`
25
+ - Time macros for filtering for floating time periods:
26
+ - Example:
27
+
28
+ \`\`\`
29
+ SELECT {metric/payment} WHERE {attribute/date} = THIS – 1
30
+ \`\`\`
31
+ - Logical expressions for combining filters
32
+ - Example:
33
+
34
+ \`\`\`
35
+ SELECT {metric/revenue} WHERE {label/date.year} = "2006" AND {label/date.month} = "5"
36
+ \`\`\``;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR attribute\nThis keyword clause overrides all attributes except for those attributes\nwithin the dimension of the attribute that is specified.\n\nALL IN ALL OTHER DIMENSIONS can be abbreviated as \"All Other.\"\n\n## Syntax\n\n```\nSELECT \u2026 BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR\u2026\nSELECT metric BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR attribute\n```\n\n## Examples\n\n```\nSELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR {attribute/date_opportunity_closed})\n```\n\nIn this example, Payment could be broken down by any date in the Date(Opportunity Closed) date dimension, such as `Month/Year(Opportunity Closed)`, `Quarter/Year(Opportunity Closed)`, or `Year(Opportunity Closed)`.";
2
+ //# sourceMappingURL=by-all-in-all-other-dimensions-except-for-attribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"by-all-in-all-other-dimensions-except-for-attribute.d.ts","sourceRoot":"","sources":["../../../../../../../../src/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,0vBAmByM,CAAC"}
@@ -0,0 +1,21 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR attribute
3
+ This keyword clause overrides all attributes except for those attributes
4
+ within the dimension of the attribute that is specified.
5
+
6
+ ALL IN ALL OTHER DIMENSIONS can be abbreviated as \"All Other.\"
7
+
8
+ ## Syntax
9
+
10
+ \`\`\`
11
+ SELECT … BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR…
12
+ SELECT metric BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR attribute
13
+ \`\`\`
14
+
15
+ ## Examples
16
+
17
+ \`\`\`
18
+ SELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS EXCEPT FOR {attribute/date_opportunity_closed})
19
+ \`\`\`
20
+
21
+ In this example, Payment could be broken down by any date in the Date(Opportunity Closed) date dimension, such as \`Month/Year(Opportunity Closed)\`, \`Quarter/Year(Opportunity Closed)\`, or \`Year(Opportunity Closed)\`.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# BY ALL IN ALL OTHER DIMENSIONS\nThis clause overrides all attributes - keeping the metric from being\nbroken down at all. As a result, the associated metric will remain\naggregated at the highest possible level of aggregation across all\ndimensions.\n\nALL IN ALL OTHER DIMENSIONS can be abbreviated as \"ALL OTHER\".\n\n## Syntax\n\n```\nSELECT ... BY ALL IN ALL OTHER DIMENSIONS\nSELECT metric BY ALL IN ALL OTHER DIMENSIONS\n```\n\n## Examples\n\n```\nSELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS\nSELECT {metric/payment} / (SELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS)\n```\n\nThe second example above could be useful in a visualization that breaks data\ndown with a Month attribute. The above metric would show the percent\nshare of each month's payments relative to the sum of all payments\nacross all time and all other dimensions.";
2
+ //# sourceMappingURL=by-all-in-all-other-dimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"by-all-in-all-other-dimensions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,k2BAyBsB,CAAC"}
@@ -0,0 +1,27 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# BY ALL IN ALL OTHER DIMENSIONS
3
+ This clause overrides all attributes - keeping the metric from being
4
+ broken down at all. As a result, the associated metric will remain
5
+ aggregated at the highest possible level of aggregation across all
6
+ dimensions.
7
+
8
+ ALL IN ALL OTHER DIMENSIONS can be abbreviated as \"ALL OTHER\".
9
+
10
+ ## Syntax
11
+
12
+ \`\`\`
13
+ SELECT ... BY ALL IN ALL OTHER DIMENSIONS
14
+ SELECT metric BY ALL IN ALL OTHER DIMENSIONS
15
+ \`\`\`
16
+
17
+ ## Examples
18
+
19
+ \`\`\`
20
+ SELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS
21
+ SELECT {metric/payment} / (SELECT {metric/payment} BY ALL IN ALL OTHER DIMENSIONS)
22
+ \`\`\`
23
+
24
+ The second example above could be useful in a visualization that breaks data
25
+ down with a Month attribute. The above metric would show the percent
26
+ share of each month's payments relative to the sum of all payments
27
+ across all time and all other dimensions.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# BY ALL\nThe BY ALL keyword is used to override a specified attribute dimension.\n\nFor example, `Date/Year(Lead Created)`, `Month/Year(Lead Created)`, `Quarter/Year\nLead Created)` all represent attributes of varying granularity within the\nsame dimension. This effectively prohibits any attribute of that\ndimension from breaking down the metric at hand.\n\n## Syntax\n\n```\nSELECT \u2026 BY ALL \u2026\nSELECT metric BY ALL attribute\nSELECT metric BY ALL attribute1, ALL attribute2\n```\n\n## Examples\n\n```\nSELECT {metric/payment} BY ALL {label/date.quarter}\nSELECT {metric/payment} / (SELECT {metric/payment} BY ALL {label/date.quarter})\nSELECT {metric/payment} / (SELECT {metric/payment} BY ALL {label/date.quarter}, ALL {attribute/industry})\n```\n\nIn the example below, the number of leads is broken down by quarter in\ncolumn 3. But in column 4, the BY keyword has been used to set an\naggregation floor at the Year level, returning annual lead values for\n2012 and 2013. Compare these values to those in the final column which\ndisplays values of a metric: `#Leads BY ALL Year`.\n\nThese values represent the total number of leads across all time - the sum of all leads\nrecorded in the entire data set.\n\n![The BY ALL Year clause serves to override all attributes from the attribute dimension to which Year belongs.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-leads.png)\n\nAlso of interest in the example above is how the `#Leads BY ALL DATE`, `#LEADS BY ALL MONTH`, and `#LEADS BY ALL YEAR` metrics all return\nidentical values. This demonstrates that the granularity of the\nattribute added to the BY ALL clause does not affect the values that are\nreturned. The attribute that follows BY ALL simply dictates that the\ndimension to which it belongs should not be able to break down the\nmetric at hand. For this reason, even if the precise granularity of the\nattribute used in the BY ALL clause doesn't matter, an attribute must\nalways be specified as a way of defining the dimension of interest.\n\nAs the BY ALL YEAR metric from the final column of the table above\nshows, BY ALL overrides other date attributes in the visualization - keeping\nthem from affecting metric values in the final column. But this does not\nmean those metric values are immune to being broken down by non-date\nattributes as well. In the example below, note how the `#Leads BY ALL\nYear` metric values **can** be broken down by an *Industry* attribute even\nif they are not affected by date attributes. (`#Leads BY ALL Year` values\nfor each industry are aggregated across all time. Notice how the\nindustry figures are identical between Q4/2012 and Q1/2012.)\n\nBY ALL YEAR only overrides the Year attribute. The metric can still be broken down by other visualization attributes like Industry.\n\n![The BY ALL Year clause doesn't prevent slicing by other attributes](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-leads-industry.jpg)\n\nIn the example above, we could also add ALL Industry to the end of our\n`#Leads BY ALL Year` metric syntax to override both the date attribute\nand industry attribute dimensions.\n\n![Both Year and Industry are overridden, so the metric is not broken down.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-overridden.jpg)";
2
+ //# sourceMappingURL=by-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"by-all.d.ts","sourceRoot":"","sources":["../../../../../../../../src/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,6vGA8DyI,CAAC"}
@@ -0,0 +1,64 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# BY ALL
3
+ The BY ALL keyword is used to override a specified attribute dimension.
4
+
5
+ For example, \`Date/Year(Lead Created)\`, \`Month/Year(Lead Created)\`, \`Quarter/Year
6
+ Lead Created)\` all represent attributes of varying granularity within the
7
+ same dimension. This effectively prohibits any attribute of that
8
+ dimension from breaking down the metric at hand.
9
+
10
+ ## Syntax
11
+
12
+ \`\`\`
13
+ SELECT … BY ALL …
14
+ SELECT metric BY ALL attribute
15
+ SELECT metric BY ALL attribute1, ALL attribute2
16
+ \`\`\`
17
+
18
+ ## Examples
19
+
20
+ \`\`\`
21
+ SELECT {metric/payment} BY ALL {label/date.quarter}
22
+ SELECT {metric/payment} / (SELECT {metric/payment} BY ALL {label/date.quarter})
23
+ SELECT {metric/payment} / (SELECT {metric/payment} BY ALL {label/date.quarter}, ALL {attribute/industry})
24
+ \`\`\`
25
+
26
+ In the example below, the number of leads is broken down by quarter in
27
+ column 3. But in column 4, the BY keyword has been used to set an
28
+ aggregation floor at the Year level, returning annual lead values for
29
+ 2012 and 2013. Compare these values to those in the final column which
30
+ displays values of a metric: \`#Leads BY ALL Year\`.
31
+
32
+ These values represent the total number of leads across all time - the sum of all leads
33
+ recorded in the entire data set.
34
+
35
+ ![The BY ALL Year clause serves to override all attributes from the attribute dimension to which Year belongs.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-leads.png)
36
+
37
+ Also of interest in the example above is how the \`#Leads BY ALL DATE\`, \`#LEADS BY ALL MONTH\`, and \`#LEADS BY ALL YEAR\` metrics all return
38
+ identical values. This demonstrates that the granularity of the
39
+ attribute added to the BY ALL clause does not affect the values that are
40
+ returned. The attribute that follows BY ALL simply dictates that the
41
+ dimension to which it belongs should not be able to break down the
42
+ metric at hand. For this reason, even if the precise granularity of the
43
+ attribute used in the BY ALL clause doesn't matter, an attribute must
44
+ always be specified as a way of defining the dimension of interest.
45
+
46
+ As the BY ALL YEAR metric from the final column of the table above
47
+ shows, BY ALL overrides other date attributes in the visualization - keeping
48
+ them from affecting metric values in the final column. But this does not
49
+ mean those metric values are immune to being broken down by non-date
50
+ attributes as well. In the example below, note how the \`#Leads BY ALL
51
+ Year\` metric values **can** be broken down by an *Industry* attribute even
52
+ if they are not affected by date attributes. (\`#Leads BY ALL Year\` values
53
+ for each industry are aggregated across all time. Notice how the
54
+ industry figures are identical between Q4/2012 and Q1/2012.)
55
+
56
+ BY ALL YEAR only overrides the Year attribute. The metric can still be broken down by other visualization attributes like Industry.
57
+
58
+ ![The BY ALL Year clause doesn't prevent slicing by other attributes](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-leads-industry.jpg)
59
+
60
+ In the example above, we could also add ALL Industry to the end of our
61
+ \`#Leads BY ALL Year\` metric syntax to override both the date attribute
62
+ and industry attribute dimensions.
63
+
64
+ ![Both Year and Industry are overridden, so the metric is not broken down.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-all-overridden.jpg)`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# BY attribute ALL IN ALL OTHER DIMENSIONS\nThe first part of this keyword serves a similar role as the BY\nstatement, defining an aggregation floor at the granularity level of the\nspecified attribute. But the keyword also overrides all attributes in\nall other dimensions - keeping them from having any effect on the\nmetric.\n\nALL IN ALL OTHER DIMENSIONS can be abbreviated as \"All Other.\"\n\n## Syntax\n\n```\nSELECT \u2026 BY \u2026 ALL IN ALL OTHER DIMENSIONS\nSELECT metric BY attribute ALL IN ALL OTHER DIMENSIONS\n```\n\n## Examples\n\n```\nSELECT SUM(metric/resolution_time) BY {label/date.quarter} ALL IN ALL OTHER DIMENSIONS\n```";
2
+ //# sourceMappingURL=by-attribute-all-in-all-other-dimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"by-attribute-all-in-all-other-dimensions.d.ts","sourceRoot":"","sources":["../../../../../../../../src/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,yoBAoBb,CAAC"}
@@ -0,0 +1,22 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# BY attribute ALL IN ALL OTHER DIMENSIONS
3
+ The first part of this keyword serves a similar role as the BY
4
+ statement, defining an aggregation floor at the granularity level of the
5
+ specified attribute. But the keyword also overrides all attributes in
6
+ all other dimensions - keeping them from having any effect on the
7
+ metric.
8
+
9
+ ALL IN ALL OTHER DIMENSIONS can be abbreviated as \"All Other.\"
10
+
11
+ ## Syntax
12
+
13
+ \`\`\`
14
+ SELECT … BY … ALL IN ALL OTHER DIMENSIONS
15
+ SELECT metric BY attribute ALL IN ALL OTHER DIMENSIONS
16
+ \`\`\`
17
+
18
+ ## Examples
19
+
20
+ \`\`\`
21
+ SELECT SUM(metric/resolution_time) BY {label/date.quarter} ALL IN ALL OTHER DIMENSIONS
22
+ \`\`\``;
@@ -0,0 +1,2 @@
1
+ export declare const content = "# BY\nThe BY keyword is used to set a minimum level of granularity by which a\nmetric can be broken down. BY effectively sets an **aggregation floor**,\noverriding visualization attributes that would serve to break the metric down\ninto smaller units of granularity than is specified in the BY clause.\n\n## Syntax\n\n```\nSELECT \u2026 BY \u2026\nSELECT metric BY attribute\nSELECT metric BY attribute1, attribute2\n```\n\n## Examples\n\n```\nSELECT {metric/Payment} BY {label/date.year}\nSELECT {metric/Payment} / (SELECT {metric/Payment} BY {label/date.year})\nSELECT {metric/Payment} BY {label/date.quarter}, {attribute/department}\n```\n\n## By Clauses with One Attribute\n\nThe example below shows customer support ticket resolution time by month\nand quarter. Note how the BY clause is used in the third column to\nestablish that the metric values should not be broken down by any date\nattribute smaller than `Quarter`. The effect of the BY keyword can be\nseen by comparing column 3 and column 2 cell values. Even though the\nvisualization's `Month/Year` attribute breaks visualization data in column 2 down by\nmonth, column 3 data remains at the `Quarter` level.\n\n![Customer support ticket resolution time for each month, each quarter, and the share of a quarter's resolution time that can be attributed to each month.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-tickets-table.png)\n\nColumn 4 provides an interesting use case for the BY keyword: it\ndisplays the percent share of the total resolution time in a quarter\nthat can be attributed to each month. This is found by dividing the\nmetric from column 2 by the metric from column 3 using the following\nsyntax:\n\n```\nSELECT(SELECT SUM(metric/resolution_time)) / (SELECT SUM(metric/resolution_time) BY Quarter)\n```\n\nContinuing on with this example, note what happens when we replace the\nvisualization's Month attribute with a Year attribute (with larger granularity than the metric's Quarter BY attribute). The chart below shows that the\nBY keyword no longer affects the data returned by the metric in column\n2.\n\nThe BY keyword provides a floor - or minimum aggregation level - at the\n`Quarter` level, but does not affect metric data that is aggregated at\nthe larger `Year` level of granularity.\n\n\n![The BY Quarter clause does not override visualization attributes of larger granularity. Rather, it only serves to set a minimum aggregation level.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-tickets-quarter.png)\n\n## By Clauses with Multiple Attributes\n\nThe BY clause also supports multiple attributes, including non-date\nattributes. For example, the syntax below sets an aggregation floor at\nthe Quarter and Department levels.\n\n```\nSELECT SUM({metric/payment}) BY {label/date.quarter}, {attribute/department}\n```\n\nDue to the second attribute in the clause above, sub-attributes of\n`Department` like `Product_Team` or `Employee` could be added to a\nvisualization definition, but values returned by this metric would still be\naggregated at the `Department` level.\n\n## By Clauses with Datasets\n\nYou can replace attributes with datasets in BY clauses and represent their granularity. \n\nThis provides the same result as using primary key attributes if datasets have the primary keys defined.\n\n```\nSELECT AVG( SELECT ({metric/order_amount}) BY {dataset/order_lines} )\n```\n\nThe `order_amount` metric multiplies price by quantity. \n\nThe metric described above calculates the average of `order_amount` per each record of the `order_lines` dataset.";
2
+ //# sourceMappingURL=by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"by.d.ts","sourceRoot":"","sources":["../../../../../../../../src/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,wgHAmFkG,CAAC"}
@@ -0,0 +1,85 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export const content = `# BY
3
+ The BY keyword is used to set a minimum level of granularity by which a
4
+ metric can be broken down. BY effectively sets an **aggregation floor**,
5
+ overriding visualization attributes that would serve to break the metric down
6
+ into smaller units of granularity than is specified in the BY clause.
7
+
8
+ ## Syntax
9
+
10
+ \`\`\`
11
+ SELECT … BY …
12
+ SELECT metric BY attribute
13
+ SELECT metric BY attribute1, attribute2
14
+ \`\`\`
15
+
16
+ ## Examples
17
+
18
+ \`\`\`
19
+ SELECT {metric/Payment} BY {label/date.year}
20
+ SELECT {metric/Payment} / (SELECT {metric/Payment} BY {label/date.year})
21
+ SELECT {metric/Payment} BY {label/date.quarter}, {attribute/department}
22
+ \`\`\`
23
+
24
+ ## By Clauses with One Attribute
25
+
26
+ The example below shows customer support ticket resolution time by month
27
+ and quarter. Note how the BY clause is used in the third column to
28
+ establish that the metric values should not be broken down by any date
29
+ attribute smaller than \`Quarter\`. The effect of the BY keyword can be
30
+ seen by comparing column 3 and column 2 cell values. Even though the
31
+ visualization's \`Month/Year\` attribute breaks visualization data in column 2 down by
32
+ month, column 3 data remains at the \`Quarter\` level.
33
+
34
+ ![Customer support ticket resolution time for each month, each quarter, and the share of a quarter's resolution time that can be attributed to each month.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-tickets-table.png)
35
+
36
+ Column 4 provides an interesting use case for the BY keyword: it
37
+ displays the percent share of the total resolution time in a quarter
38
+ that can be attributed to each month. This is found by dividing the
39
+ metric from column 2 by the metric from column 3 using the following
40
+ syntax:
41
+
42
+ \`\`\`
43
+ SELECT(SELECT SUM(metric/resolution_time)) / (SELECT SUM(metric/resolution_time) BY Quarter)
44
+ \`\`\`
45
+
46
+ Continuing on with this example, note what happens when we replace the
47
+ visualization's Month attribute with a Year attribute (with larger granularity than the metric's Quarter BY attribute). The chart below shows that the
48
+ BY keyword no longer affects the data returned by the metric in column
49
+ 2.
50
+
51
+ The BY keyword provides a floor - or minimum aggregation level - at the
52
+ \`Quarter\` level, but does not affect metric data that is aggregated at
53
+ the larger \`Year\` level of granularity.
54
+
55
+
56
+ ![The BY Quarter clause does not override visualization attributes of larger granularity. Rather, it only serves to set a minimum aggregation level.](https://www.gooddata.com/developers/cloud-native/doc/maql/by-tickets-quarter.png)
57
+
58
+ ## By Clauses with Multiple Attributes
59
+
60
+ The BY clause also supports multiple attributes, including non-date
61
+ attributes. For example, the syntax below sets an aggregation floor at
62
+ the Quarter and Department levels.
63
+
64
+ \`\`\`
65
+ SELECT SUM({metric/payment}) BY {label/date.quarter}, {attribute/department}
66
+ \`\`\`
67
+
68
+ Due to the second attribute in the clause above, sub-attributes of
69
+ \`Department\` like \`Product_Team\` or \`Employee\` could be added to a
70
+ visualization definition, but values returned by this metric would still be
71
+ aggregated at the \`Department\` level.
72
+
73
+ ## By Clauses with Datasets
74
+
75
+ You can replace attributes with datasets in BY clauses and represent their granularity.
76
+
77
+ This provides the same result as using primary key attributes if datasets have the primary keys defined.
78
+
79
+ \`\`\`
80
+ SELECT AVG( SELECT ({metric/order_amount}) BY {dataset/order_lines} )
81
+ \`\`\`
82
+
83
+ The \`order_amount\` metric multiplies price by quantity.
84
+
85
+ The metric described above calculates the average of \`order_amount\` per each record of the \`order_lines\` dataset.`;
@@ -0,0 +1,2 @@
1
+ export declare const content = "Includes all parent filters, except for any filters specified as a\ncomma-separated list of attributes.\n\nThis clause can be shortened to WITH PF EXCEPT.\n\nIn EXCEPT clauses, multiple attributes can be specified as a series of\ncomma-separated values.\n\n## Example\n\nIn the table below, you can see how the WITH PARENT\nFILTER EXCEPT keyword affects the filtered version of the visualization.\n\n\n| Definition | Visualization Filter | Metric Value |\n|--------------------------|--------------------------|--------------|\n| `SELECT M1` | (none) | 500 |\n| `SELECT M1` | F1: Group = X | 350 |\n| `SELECT M1` | F1: Group = X; F2: Priority is Y | 250 |\n| `SELECT M1 WITH PARENT FILTER EXCEPT {attribute/priority}` | F1: Group = X; F2: Priority is Y | 350 |\n\nIn the above example in the fourth row, the\nWITH PARENT FILTER EXCEPT includes all parent filters in the metric,\nexcept for one: Priority. So, in this case, the Priority filter is not\napplied to the metric. The generated metric value equates to the value\ngenerated in the version in the second row.\n\n## Syntax\n\n```\nSELECT ... WITH PARENT FILTER EXCEPT Attribute1,...\n```\n\n```\nSELECT ... WITH PF EXCEPT Attribute1,...\n```";
2
+ //# sourceMappingURL=with-parent-except.d.ts.map