AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 131543
Accepted
user3469285
user3469285
Asked: 2016-03-08 15:26:12 +0800 CST2016-03-08 15:26:12 +0800 CST 2016-03-08 15:26:12 +0800 CST

Dois fatos, duas dimensões, uma consulta, um cubo, pode ser feito e como?

  • 772

Tenho quatro tabelas, dois Fatos e duas Dimensões. Abaixo, listei as colunas relevantes dessas tabelas e os resultados que gostaria de ver no Cubo.

Fact Order table
----------------
SK_Order
FirstEverOrder

Dim Order
---------
SK_Order

Fact Product Order
------------------
SK_Order
SK_Product
Number of Products

Dim Product
-----------
SK_Product
Product Name

Nos resultados, gostaria de ver a taxa de primeiro pedido. Ou seja, de todas as vezes que um produto aparece em um pedido, quantos desses pedidos foram o primeiro pedido feito pelo cliente?

Products      First Ever Order Rate (%)
--------      --------------------------
Product 1     3%
Product 2     2%

Uma situação de exemplo para o uso deste relatório pode ser que você queira anunciar os produtos que aparecem com frequência nos primeiros pedidos.

Até o momento tenho minhas tabelas relacionadas juntas no cubo da seguinte forma:

insira a descrição da imagem aqui

insira a descrição da imagem aqui Por favor, eu quero fazer isso no cubo. Sei que pode ser feito por meio de um procedimento armazenado com um relatório do SSRS, mas quero fazer no cubo.

Não sei o que fazer nas guias Cálculos ou Relacionamentos de uso da dimensão, ou se preciso fazer mais alguma coisa na guia Estrutura do cubo. Por favor, seja detalhado em sua resposta.

ssas
  • 2 2 respostas
  • 3177 Views

2 respostas

  • Voted
  1. GregGalloway
    2016-03-11T17:32:08+08:002016-03-11T17:32:08+08:00

    Na guia Dimension Usage, clique em ... Na célula que é Fact Order e Dim Product. Mude essa célula para um relacionamento muitos-para-muitos.

    Em seguida, adicione uma medida Sum na coluna FirstEverOrder chamada First Ever Order Count. Adicione também uma medida Count que é uma contagem de linhas chamada Order Count.

    Agora crie uma nova medida calculada que é:

    IIF([Measures].[Order Count]=0,Null,[Measures].[First Ever Order Count] / [Measures].[Order Count])
    

    Agora você deve ser capaz de construir seu relatório como você mostrou. Esse é o poder de muitos para muitos.

    • 2
  2. Best Answer
    user3469285
    2017-08-02T06:05:49+08:002017-08-02T06:05:49+08:00

    Publiquei esta pergunta em março de 2016, quando não entendia totalmente a metodologia Kimball. Agora tenho uma compreensão muito melhor, adquiri mais experiência e posso responder à minha própria pergunta.

    A resposta é, eu estava perdendo uma tabela de fatos! Eu precisava de uma tabela de fatos no grão do produto (ou seja, um produto por linha na tabela de fatos) para conter minha medida ("First Ever Order Rate"). Eu poderia então colocar uma chave estrangeira na tabela de fatos apontando para a dimensão Produto.

    Alternativamente, eu poderia colocar a medida na própria dimensão. Isso efetivamente tornaria a dimensão uma tabela de fatos e todos os atributos de dimensão se tornariam "dimensões degeneradas". A mesma tabela pode então ser usada como fonte para o grupo de medidas Produto e a Dimensão do Produto no cubo.

    Para calcular a proporção, teria sido muito mais fácil fazer isso no ETL, em vez de um cálculo no cubo.

    O problema com os relacionamentos Muitos-para-Muitos no cubo é que eles relacionam muitos membros de dimensão em uma dimensão a muitos membros de dimensão em outra dimensão. Eles não relacionam muitas linhas de fatos em uma tabela de fatos a muitas linhas de fatos em outra tabela de fatos. Não é assim que a tecnologia kimball ou MS cube foi projetada para funcionar.

    • 2

relate perguntas

  • Encontre material para melhorias no Microsoft BI

  • SSAS: mover banco de dados tempdb

  • Campo booleano no cubo OLAP

  • Propriedades DSO do SQL Server 2008 Analysis Services

  • Hierarquia de dimensões do SSAS causa erros de implantação

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve