我的查询如下图所示。输出
电流输出
Role Cases prepped % Completed
State Member 1 10 5 50%
State Member 2 10 7 70%
State President 10 2 20%
Summary 30 14 46.6%
预期产量
Role Cases prepped % Completed
State President 10 2 20%
State Member 1 10 5 50%
State Member 2 10 7 70%
Summary 30 14 46%
角色表
id name
30 State President
40 State Member
这是我的查询
SELECT COALESCE(ROLE, 'Summary') ROLE,
count(*) AS cases,
SUM(CASE WHEN PREPARED = 'Y' THEN 1
ELSE 0
END) AS prepped,
round(avg(case when prepared = 'Y' then 100 else 0 end),2)||'%' as % Completed
FROM
(SELECT CASE
WHEN r.id = 30 THEN r.name
ELSE r.name || ' ' || u.case_member_id
END AS ROLE,
bi.prepared
FROM cases c
LEFT JOIN case_inventory ci ON ci.case_id = c.id
AND c.id = ci.case_id
AND c.delete_date IS NULL
AND ci.case_id =40
Left JOIN users u ON ci.assigned_to = u.id
Left JOIN ROLES r ON u.role_id = r.id
Left JOIN user_cases_map uc ON c.id = uc.case_id
AND uc.id = 1572919346)
GROUP BY ROLLUP (ROLE);
我现在要根据角色对行进行排序。第一个记录应该是州总统,然后是州议员1.州议员2.依此类推。我试图在内部子句中按顺序排序,但这没有帮助。它没有任何作用。添加外部选择也不会更改任何内容。任何帮助表示高度赞赏。谢谢你。
你可以做这样的事情。我没有您的输入数据,所以我SCOTT.EMP
改用了。
注意几件事。我按分组JOB
,并GROUPING(JOB)
在中使用SELECT
(TOTAL
为摘要行添加标签)和中ORDERBY
。由于我JOB
在SELECT
(输出列)中重用了列名,因此在ORDER BY
I中,我必须小心限定列名JOB
(为了清楚起见,我指的是输入表列,而不是指-中的列,SELECT
如果中的列名ORDERBY
不合格)。然后,需要对中的列名进行限定ORDERBY
,这迫使我在该FROM
子句中对该表进行别名化(否则,我将不得不在所有地方都携带完整的表名)。
如果可以的话,GROUPING
在中SELECT
(而不是NVL
)中使用函数特别重要。您不希望为工作组添加标签-
您只希望为汇总行添加标签。这一点甚至使很多非常高级的程序员感到困惑。JOB``null``null``TOTAL
我展示了如何“手动”确定顺序:PRESIDENT
首先是,然后是MANAGER
,然后是所有其他作业(按字母顺序排列)。如果您将优先级顺序保存在某个地方(例如,在表中),则可以加入该表并使用排序列而不是CASE
查询中的“手动”表达式。
select case grouping(job) when 0 then job else 'TOTAL' end as job
, sum(sal) as total_salary
from scott.emp e
group by rollup(job)
order by grouping(e.job) -- to get the total in the last row
, case e.job when 'PRESIDENT' then 1 when 'MANAGER' then 2 end
, e.job
;
JOB TOTAL_SALARY
--------- ------------
PRESIDENT 5000
MANAGER 8275
ANALYST 6000
CLERK 4150
SALESMAN 5600
TOTAL 29025
问题内容: 我从table1中选择所有数据,以匹配table2中field3和field4的所有匹配唯一组合。 这是我精简的SQL: 我需要将我的SQL转换为hibernate条件。我的实体对象正确映射到了表,并将响应转换为正确的结果实体,但是我无法正确转换where子句。 我有的 我希望我的where子句类似于: 但这是hibernate所不允许的。 我尝试推出where子句以具有两个子查询,并
问题内容: 据说如果使用group by子句,则select列列表中必须存在group by列名,但是上面的查询不需要选择sourceobjectid。 问题答案: 结果 不是 遇到的第一行。MySQL非常清楚所谓的“隐藏列”的使用。引用文档: MySQL扩展了GROUP BY的使用,以便选择列表可以引用未在GROUP BY子句中命名的非聚合列。这意味着前面的查询在MySQL中是合法的。您可以使用
问题内容: 快速提问,我有下表 我想将每个月的总数加起来,并按月对总数进行分组。例如, Jan- > 138 Feb-> 88.2 Apr-> 29.84 关于它的任何线索。谢谢 问题答案: 此解决方案将为您提供月份名称作为结果集的列,然后根据需要提供总数。
问题内容: 我有下表 SQLFiddle 我试图做的是选择三个随机图像,但是要确保没有两个图像具有相同的对象,我试图做的是将GROUP BY和ORDER BY rand()一起执行,但是失败了。它总是给我cat1.jpg,dog1.jpg,box1.jpg(所有路径以1结尾而不是其他路径结尾的图像) 小提琴包括我运行的查询及其运行方式。 问题答案: 您需要的是一个随机聚合函数。通常,当前的RDBM
我得到了下面的SQL,我想将其转换为有效的HQL。这方面的问题是,不允许根据文档加入子查询。尽管这些是旧文档(v3.3),但在hibernate 5.3中,这一节似乎仍然适用。 我想出了这个HQL: 尝试执行此HQL查询会导致此异常 这将提示 在. 有没有办法加入HQL中的子查询?如果不是,那么获得与具有HQL的SQL相同的结果的最佳方法是什么? 我不擅长转换
本文向大家介绍常见的jQuery选择器汇总,包括了常见的jQuery选择器汇总的使用技巧和注意事项,需要的朋友参考一下 基本元素选择器 分层选择器 基本条件选择器 内容条件选择器 可见性条件选择器 属性选择器 子元素选择器 表单元素选择器 表单属性选择器