`

有木有更好的group by写法代替这样的查询

阅读更多

select t4.pl_ssname,
       t.pl_sno,
       t2.knsum,
       t3.knsumSum,
       round(t2.knsum / t3.knsumSum * 100, 1) finish_pct,
       sum(t6.plan_pd) planpd
  from pd_wol t,
       (select round(sum((b.wol_nsum2 + b.wol_ndef2 + b.wol_ndef4 +
                         b.wol_ndef10) * b.sk_nlength * b2.sk_nnum1) / 1000,
                     3) knsum,
               b.pl_sno
          from pd_wol b, bd_item b2, sfm_workshop b3
         where b.sk_sno = b2.sk_sno
           and b.ws_sno = b3.ws_sno
           and b3.ws_sdef1 = '2'
           and (b.wol_sstat = '3' or b.wol_sstat = '5')
         group by b.pl_sno) t2,
       (select round(sum((b.wol_nsum2 + b.wol_ndef2 + b.wol_ndef4 +
                         b.wol_ndef10) * b.sk_nlength * b2.sk_nnum1) / 1000,
                     3) knsumSum,
               b.pl_sno
          from pd_wol b, bd_item b2, sfm_workshop b3
         where b.sk_sno = b2.sk_sno
           and b.ws_sno = b3.ws_sno
           and b3.ws_sdef1 = '2'
           and (b.wol_sstat <> '4' or b.wol_sstat <> '6')
         group by b.pl_sno) t3,
       bd_pline t4,
       sfm_workshop t5,
       (select pl_sno,
               pl_nsnum * (select ceil((To_date('2012-08-07', 'yyyy-mm-dd') -
                                       To_date('2012-08-06', 'yyyy-mm-dd')))
                             FROM DUAL) * 24 plan_pd
          from bd_pline) t6
 where t.pl_sno = t2.pl_sno(+)
   and t.pl_sno = t3.pl_sno(+)
   and t.pl_sno = t4.pl_sno
   and t.ws_sno = t5.ws_sno
   and t.pl_sno = t6.pl_sno(+)
   and t5.ws_sdef1 = '2'
   and t3.knsumSum <> 0
 group by t4.pl_ssname, t.pl_sno, t2.knsum, t3.knsumSum
 
分享到:
评论

相关推荐

    Group BY 的另一种写法

    由于没有提供具体的博客内容,以上分析是基于常见的SQL查询优化技术和`GROUP BY`的替代写法进行的推测。在实际阅读博客或文档(如`大数据量分组.doc`)时,应能获取更详细的信息和具体案例。通过深入学习这些内容,...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    group by + order by

    ### Group By 和 Order ...通过以上介绍可以看出,`GROUP BY` 和 `ORDER BY` 都是 SQL 中非常实用的功能,它们可以帮助我们更好地组织和呈现数据。在实际开发过程中,灵活运用这两个子句能够极大地提高数据分析的效率。

    处理group by 查询速度太慢的问题 数据量大.doc

    优化 Group By 查询速度的实践经验 在实际项目中,遇到了表数据量大导致查询速度很慢的问题。通过记录和优化过程,总结出一些有价值的经验,希望能够帮助读者解决类似的问题。 知识点1:Group By 查询的索引设置 ...

    处理group by 查询速度慢的问题.docx

    ### 处理GROUP BY 查询速度慢的问题 在实际项目中,由于数据表的记录数量庞大,经常遇到查询速度缓慢的问题。本文将详细记录一次针对GROUP BY查询效率低下的排查及优化过程,希望能够对读者有所帮助。 #### 问题...

    Sequelize中用group by进行分组聚合查询

    在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...

    SQL中GROUP BY的用法

    GROUP BY 是 SQL 中的一种分组查询语句,通常与聚合函数配合使用。GROUP BY 语句根据一个或多个列将查询结果分组,并对每组计算聚合函数的值。 在使用 GROUP BY 语句时,需要注意以下几点: 1. select 语句中所有...

    order by 、group by 、having的用法

    在SQL查询中,`ORDER BY`、`GROUP BY` 和 `HAVING` 是三个非常重要的子句,它们分别用于不同的数据处理操作。 1. **ORDER BY** 子句: - `ORDER BY` 用于对查询结果进行排序,按照指定的字段进行升序或降序排列。...

    Lucene group by ,分组实现

    "Lucene group by" 指的就是在 Lucene 中实现基于特定字段的分组操作,类似于 SQL 中的 GROUP BY 子句。这使得用户能够按类别聚合文档,例如,根据作者、日期或其他分类标准来查看搜索结果。 在 Lucene 中,分组...

    hibernate如何使用criteria联合查询 group by 的语句

    这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友

    Flink之 group by

    1、 如果使用 groupby table转换为流的时候只能用toRetractDstream val rDstream: DataStream[(Boolean, (String, Long))] = table.toRetractStream[(String,Long)] 2、 toRetractDstream 得到的第一个boolean型...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    本论文对 MySQL 数据库中的 group by 语句和 update 语句进行了深入研究,讨论了这些语句在数据库查询和修改中的应用,并给出了具体的解决方案。 一、MySQL 数据库中 group by 语句的用法 Group by 语句的作用是对...

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    C# 中的GroupBy的动态拼接问题及GroupBy用法介绍

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Person { public string FirstName{set;get;} public string LastName{set;get;} public Person(){} public Person(string firstName, ...

    Oracle中分组查询group by用法规则详解

    `ORDER BY`子句用于对查询结果进行排序,它应该位于`GROUP BY`子句之后。需要注意的是,排序依据的列必须来自`SELECT`列表或`GROUP BY`子句。例如,按部门和职位排序上述查询结果: ```sql SELECT deptno, job, ...

    SQL GROUP BY 语句详解

    GROUP BY 语句还有其他高级用法,比如配合 HAVING 子句进行分组后的条件筛选,或者与子查询和联接操作结合使用,以实现更复杂的分析需求。总的来说,理解并熟练运用 GROUP BY 语句对于在 SQL 查询中进行数据分析至关...

    group by的详解

    5. **子查询与连接**:`GROUP BY`可以与子查询和表连接一起使用,以处理更复杂的数据聚合需求。在这个例子中,`LEFT JOIN`用于连接`c_orderline2`表和`c_bpartner`表,以获取供应商信息。 综上所述,`GROUP BY`和`...

    简单讲解sql语句中的group by的使用方法

    SQL中的`GROUP BY`语句是数据库查询中的一个重要部分,它用于将数据按照一个或多个列的值进行分组,以便对每个组执行聚合函数,如`SUM`、`COUNT`、`AVG`和`MAX...希望这些信息能帮助你更好地理解和运用`GROUP BY`语句。

    在SQL语言中用Group By子句实现除法.pdf

    在数据库查询语言SQL中,Group By子句是一种常用的聚合查询工具,它可以将数据集分成不同的组,对每组数据执行聚合函数操作,比如计算每个组的平均值、总和、最大值、最小值等。当与Select语句结合使用时,Group By...

    Sql聚合函数和group by的关系详解.doc

    Sql 聚合函数和 group by 的关系详解 Sql 聚合函数和 group by 是 SQL 语言中两个非常重要的概念,它们之间存在紧密的联系。那么,什么是聚合函数?...它们的结合使用可以帮助我们更好地分析和处理数据。

Global site tag (gtag.js) - Google Analytics