使用 MDX、SQL Server BI 进行条件记录计数

发布于 2024-11-17 08:48:50 字数 433 浏览 3 评论 0原文

这可能是一个简单的 MDX 问题,但我花了 2 天却没有任何运气。

我有一个包含以下列的简单事实表:

ID        state        type        price

001        CA          TRUCK       50300
002        MA          BIKE        3010
003        MA          BOAT        0
004        CO          BOAT        20100
...        ...

我有一个具有 2 维、状态和类型的多维数据集。现在我想获取这两个维度的行数,其中价格 > 0. 我可以在不创建第三维(id)的情况下做到这一点吗?我该怎么做呢?谢谢!

This may be a simple MDX question but I've spent 2 days without any luck.

I have a simple fact table with the following columns:

ID        state        type        price

001        CA          TRUCK       50300
002        MA          BIKE        3010
003        MA          BOAT        0
004        CO          BOAT        20100
...        ...

I have a cube with 2 dimensions, state and type. Now I'd like to get a count of rows for these two dimensions where price > 0. Can I do it without creating a 3rd dimension (id)? How would I go about doing this? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别低头,皇冠会掉 2024-11-24 08:48:50

您可以首先在事实表/视图中创建一个新列 -> CountRows 为 1,其中价格 >否则为 0 和 NULL。例如(在 T-SQL 中):

...
CASE
    WHEN Price > 0 THEN 1
    ELSE NULL
END CountRows
...

然后,在此列顶部创建一个具有 Sum 聚合类型的新度量,您应该可以开始了。在上面的示例中,此新度量将为 State.MA 和 Type.Boat 提供 1。

You can first create a new column in your fact table/view -> CountRows which is 1 where the Price is > 0 and NULL otherwise. E.g. (in T-SQL):

...
CASE
    WHEN Price > 0 THEN 1
    ELSE NULL
END CountRows
...

Then, create a new measure with Sum aggregation type on top of this column and you should be good to go. In the example above, this new measure will give you 1 for State.MA and for Type.Boat.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文