在Oracle中按查询分组

时间:2016-03-30 07:33:34

标签: sql oracle group-by

我有一个包含create_dt和order_type的表,现在我想要在不同日期计算不同的订单。

例如2016年3月22日我订购了类型为_1(2),类型_2(3)和2016年3月23日的订单(每个计数表示不同的行),我订购了type_1(5)和type_2(3)。

预期输出应为

//option[not(@disabled)]

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

这是一个简单的查询组:

SELECT s.order_type,count(*) as type,t.create_Dt
FROM create_dt t
INNER JOIN order_type  s
 ON(t.order_id = s.order_id)
GROUP BY s.order_type,t.create_dt

如果你在create_Dt中有order_type列,则不需要加入

SELECT t.order_type,count(*) as type,trunc(t.create_dt)
FROM create_dt t
GROUP BY t.order_type,trunc(t.create_dt)

编辑:如果我理解正确的话:

SELECT s.order_Type,count(*) as Type,t.create_dt
FROM order_type s
LEFT OUTER JOIN create_dt 
 ON(s.order_type = t.order_type)
GROUP BY s.order_Type,t.create_dt

如果您希望没有记录的月份显示为0,请将计数更改为:

count(t.order_type)

答案 1 :(得分:1)

SELECT   trunc(create_dt),
         Order_type,
         count(order_type)
from     table_name
group by trunc(create_dt),
         Order_type;

使用trunc()create_dt列的时间成分截断为午夜,以便同一天的行具有相同的日期值,并可按天分组。

答案 2 :(得分:0)

希望这有帮助

SELECT create_dt, Order_type, count(order_type) 
from table_name 
group by create_dt, Order_type;