Доброе утро. Мой вопрос в том, что я создаю приборную панель в pentaho. Не знаю, нужно ли мне решать проблему с помощью pentaho или sql. Чтобы иметь возможность быть, я предпочитаю sql. У меня есть ряд строк, которые я показываю и использую для подсчета различных сумм. Я бы не хотел показывать повторяющиеся строки. Sql следующий:
SELECT p.pname AS project,
t.pname AS type,
c.cname AS component,
Sum(w.timeworked / 3600) OVER (partition BY p.pname) AS suma_proyecto,
Sum(w.timeworked / 3600) OVER (partition BY p.pname,t.pname) AS suma_proyecto_tipo,
Sum(w.timeworked / 3600) OVER (partition BY c.cname,t.pname,p.pname) AS sum_by_all,
Sum(w.timeworked / 3600) OVER (partition BY c.cname) AS sum_by_component
FROM jira.jiraissue j,
jira.worklog w,
jira.project p,
jira.issuetype t,
jira.component c,
jira.nodeassociation na
WHERE w.issueid=j.id
AND j.project=p.id
AND na.source_node_id = j.id
AND na.sink_node_entity = 'Component'
AND na.source_node_entity = 'Issue'
AND na.sink_node_id=c.id
AND t.id=j.issuetype
AND w.author=(
CASE
WHEN ${Autor} = ' Todos' THEN author
ELSE ${Autor}
END)
AND p.pname= (
CASE
WHEN ${Proyecto}= ' Todos' THEN p.pname
ELSE ${Proyecto}
END)
AND t.pname=(
CASE
WHEN ${Tipo}= ' Todos' THEN t.pname
ELSE ${tipo}
END)
AND c.cname=(
CASE
WHEN ${Componente}= ' Todos' THEN cname
ELSE ${Componente}
END)
AND to_char(w.startdate,'yyyy-mm-dd') >=${FromDate}
AND to_char(w.startdate,'yyyy-mm-dd') <=${ToDate}
1 ответ
В SQL для этой цели можно использовать ключевое слово DISTINCT.
SELECT DISTINCT p.pname AS project,
t.pname AS type,
c.cname AS component,
Sum(w.timeworked / 3600) OVER (partition BY p.pname) AS suma_proyecto,
Sum(w.timeworked / 3600) OVER (partition BY p.pname,t.pname) AS suma_proyecto_tipo,
Sum(w.timeworked / 3600) OVER (partition BY c.cname,t.pname,p.pname) AS sum_by_all,
Sum(w.timeworked / 3600) OVER (partition BY c.cname) AS sum_by_component
FROM jira.jiraissue j,
jira.worklog w,
jira.project p,
jira.issuetype t,
jira.component c,
jira.nodeassociation na
WHERE w.issueid=j.id
AND j.project=p.id
AND na.source_node_id = j.id
AND na.sink_node_entity = 'Component'
AND na.source_node_entity = 'Issue'
AND na.sink_node_id=c.id
AND t.id=j.issuetype
AND w.author=(
CASE
WHEN ${Autor} = ' Todos' THEN author
ELSE ${Autor}
END)
AND p.pname= (
CASE
WHEN ${Proyecto}= ' Todos' THEN p.pname
ELSE ${Proyecto}
END)
AND t.pname=(
CASE
WHEN ${Tipo}= ' Todos' THEN t.pname
ELSE ${tipo}
END)
AND c.cname=(
CASE
WHEN ${Componente}= ' Todos' THEN cname
ELSE ${Componente}
END)
AND to_char(w.startdate,'yyyy-mm-dd') >=${FromDate}
AND to_char(w.startdate,'yyyy-mm-dd') <=${ToDate}
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.