集团通过SQL为

问题描述:

我有一个查询,订单由DeliveryName集团通过SQL为

SELECT ID, CreatedAt, Identifier, Name, DeliveryName, RoundedPriceSum 
FROM StarOrder 
WHERE 
    SiteID = 1 AND --StarSite.ID 1= SE, 2 = NO 
    ShippingTypeID = 4 -- StarShippingType.ID 4 = STORE_PICKUP SE, 10 = STORE_PICKUP NO 
    and CreatedAt between '2015/01/11' and '2016/05/30' 
Order BY DeliveryName DESC 

我想组让每个交货名称具有行的总数,但没有运气。任何帮助都会很棒。

+0

一些样品表数据和预期的结果,都会更清晰! – jarlh

+1

请参阅[W3Schools SQL Group by](http://www.w3schools.com/sql/sql_groupby.asp)以获取更多详细信息 – Spidey

分组的行的你是选择所有列,包括ID(具有最低的粒度或详细的数据)的数量,那么你怎么能得到的分组数据。你也没有使用group by子句。 您需要选择分组列和汇总数据,如sum()或avg()count()等来实现此目的。

SELECT DeliveryName, count(*) 
FROM StarOrder 
WHERE SiteID = 1 
AND ShippingTypeID = 4 
and CreatedAt between '2015/01/11' and '2016/05/30' 
group by DeliveryName 
Order BY DeliveryName DESC 

例如,如果你想通过班集体的学生,你会选择号学生的。但是,如果您选择学生的名字那么你会得到每个学生的排。

+0

OP不希望总和RoundedPriceSum,_“试图组以便每个交货名称具有总行数“_ – Spidey

+0

已编辑的解决方案...... – RanchiRhino

您可以通过获得这种DeliveryNAme方式

SELECT DeliveryName, count(*) 
FROM StarOrder 
WHERE SiteID = 1 
AND ShippingTypeID = 4 
and CreatedAt between '2015/01/11' and '2016/05/30' 
group by DeliveryName  
Order BY DeliveryName DESC 
+0

我收到此错误消息156,级别15,状态1,行7 关键字附近的语法不正确'组'。 – Deano

+0

我已经更新了答案(按位置错误的顺序) – scaisEdge

+0

这没关系我修好了。感谢你的回答!只需要稍微调整 – Deano