CREATE VIEW  "Northwind"."Order Subtotals"  AS SELECT  "Order Details".OrderID,
   SUM(CAST("Order Details".UnitPrice * Quantity *  (1-Discount)/100 * 100 AS DECIMAL(16,2))) AS Subtotal
FROM  "Order Details"
GROUP BY  "Order Details".OrderID;每一个OrderID都是唯一的。这里group by的作用是什么?如果没有这一句会怎样?
我看了教程,group by就是把该属性相同的每一行集中到一起。例如
就是把每一间商店的总销量计算出来。
但是在开头的代码中,每一个OrderID都是唯一的,不可能有两个Order的OrderID相同,怎么会在这里使用group by??我就看不懂了。

解决方案 »

  1.   

    group by顾名思义,就是分组
    如果"每一个OrderID都是唯一的",就是按OrderID统计每个OrderID的Subtotal
      

  2.   

    就是把每一间商店的总销量计算出来。 
    但是在开头的代码中,每一个OrderID都是唯一的,不可能有两个Order的OrderID相同,怎么会在这里使用group by??我就看不懂了。
    ------如果不group by,则统计的是全部商店的总销量。
    有group by 则是每一间商店的销量,这是一种分组合计,每一个商店 为一组。不加 group by 则把全部商店看成一个组了。
      

  3.   

    CREATE VIEW "Northwind"."Order Subtotals"  AS SELECT "Order Details".OrderID, 
      SUM(CAST("Order Details".UnitPrice * Quantity * (1-Discount)/100 * 100 AS DECIMAL(16,2))) AS Subtotal 
    FROM "Order Details" 
    GROUP BY "Order Details".OrderID;
    这里用group by 是为了把OrderID中的分一个都分出来看。如果不按OrderID分组的话,就只会显示一个总值达不到你想要的确结果。所以这里用了group by 语句。我是这样认为的。。
      

  4.   

    group bY是把同一种类型分组 统计出来是一种类型的商店的销售量