[英]query sql error on pentaho data integration (subquery)
這是我的SQL查詢
SELECT
p.Product_Name, d.year4
COUNT (fact_order.sk_product)
FROM
(SELECT * FROM fact_order limit 0,5000) fo , product p , dim_date d
WHERE fo.sk_product = p.sk_product and fo.sk_order_date = d.date_key and fo.sk_product = ${product_name}
GROUP BY fo.sk_product, d.year4
LIMIT 0,2000
我希望展示基於產品的年份
嘗試
SELECT p.Product_Name, d.year4, COUNT(fo.sk_product)
FROM (SELECT * FROM fact_order limit 0, 5000) fo, product p, dim_date d
WHERE fo.sk_product = p.sk_product
and fo.sk_order_date = d.date_key
and fo.sk_product = ${product_name}
GROUP BY fo.sk_product, d.year4,p.Product_Name LIMIT 0, 2000
缺少,您的查詢:
SELECT
p.Product_Name, d.year4,COUNT (fact_order.sk_product)
FROM
(SELECT * FROM fact_order limit 0,5000) fo , product p , dim_date d
WHERE fo.sk_product = p.sk_product and fo.sk_order_date = d.date_key and fo.sk_product = ${product_name}
GROUP BY fo.sk_product, d.year4
LIMIT 0,2000
我認為錯誤出現在WHERE
子句中。 您正在執行fo.sk_product = ${product_name}
。 如果我沒看錯,您應該將sk_product
(我想是整數)與另一個sk_product
而不是product_name
(它是字符串)進行比較。
因為事實表中有sk_product
,所以我將做fo.sk_product = p.sk_product
。 此外,在SELECT
具有p.Product_Name
,但它不在GROUP BY
子句中。 如果要在行中獲取產品名稱, p.product_name
在GROUP BY
fo.sk_product
p.product_name
替換為p.product_name
,或者如果要獲取替代鍵而不是產品名稱,請在以下位置將p.Product_Name
替換為p.sk_product
SELECT
子句。
您必須認為要通過product_name
獲得產品,此列必須為UNIQUE。
查詢將是這樣的(通過sk_product
和sk_product
作為參數獲取):
SELECT
p.sk_product, d.year4, COUNT(fact_order.sk_product)
FROM
(SELECT * FROM fact_order limit 0,5000) fo, product p , dim_date d
WHERE fo.sk_product = p.sk_product and fo.sk_order_date = d.date_key and fo.sk_product = ${sk_product_parameter}
GROUP BY p.sk_product, d.year4
LIMIT 0,2000
或這樣(如果product_name對於每個sk_product為UNIQUE,則按product_name獲取):
SELECT
p.Product_Name, d.year4
COUNT (fact_order.sk_product)
FROM
(SELECT * FROM fact_order limit 0,5000) fo , product p , dim_date d
WHERE fo.sk_product = p.sk_product and fo.sk_order_date = d.date_key and p.product_name = ${product_name}
GROUP BY fo.sk_product, d.year4
LIMIT 0,2000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.