具有计数、求和和和分组依据的SQL查询

具有计数、求和和和分组依据的SQL查询,sql,count,group-by,Sql,Count,Group By,如果有人有时间回答,请快速提问。当前的查询非常有效,但我还需要获得订单总数和总发货量。我知道这些数字因为连接而被忽略了 我知道我的计数和总数是: count(DISTINCT orders.id) AS num_orders, SUM(orders.shipping_cost_ex_tax) AS shipping 我想我需要在原始的select中使用count和sum,在join中处理其余的部分,但是我的一生都无法正确地处理这个问题 任何帮助都将不胜感激,即使是“运行单独的查询”。谢谢大家

如果有人有时间回答,请快速提问。当前的查询非常有效,但我还需要获得订单总数和总发货量。我知道这些数字因为连接而被忽略了

我知道我的计数和总数是:

count(DISTINCT orders.id) AS num_orders,
SUM(orders.shipping_cost_ex_tax) AS shipping
我想我需要在原始的select中使用count和sum,在join中处理其余的部分,但是我的一生都无法正确地处理这个问题

任何帮助都将不胜感激,即使是“运行单独的查询”。谢谢大家

当前查询:

SELECT 
    IF(products.categories LIKE '68', 'Shirts', 'Books') AS group_key,
    CONCAT(order_products.name) AS product_name,
    brands.name AS author,
    SUM(order_products.quantity) AS num_units,
    CASE WHEN products.sku LIKE '%-WB' THEN 'Combo'
        WHEN products.sku LIKE '%-BO' THEN 'Box'
        ELSE ''
    END AS item_type,
    SUM(IF(order_products.discount IS NULL, order_products.price_ex_tax, (order_products.price_ex_tax - order_products.discount))) AS income 
 FROM orders 
 INNER JOIN order_products ON order_products.bc_order_id = orders.bc_id
 INNER JOIN products ON order_products.bc_product_id = products.bc_id
 INNER JOIN brands ON products.brand_id = brands.bc_id 
 WHERE (orders.created_at BETWEEN '2012-01-28 00:00:00' and '2012-02-21 23:00:00') 
 GROUP BY group_key,
 case when products.brand_id = '68'
 then products.name
 else products.sku
 end

查看提供的评论,我面前没有完整的模式。你喜欢这项工作吗

Table Report  
(  
    id,  
    countOrders,  
    countSales,  
    countShipping,  
    countTax,  
    datePublished  
)   

Table SoldProducts  
(  
    id,  
    price,    
    tax,  
    shippingPrice,  
    datePurchased  
)  

因此,在本例中,您要做的是通过查询
SoldProducts
生成一个报告,然后将生成的报告持久化

你在使用什么样的SQL产品?如果连接让你感到厌烦,而不是所有其他的恶作剧,我会尝试用子查询来重新处理它,这些子查询可以完成更小的部分工作。此外,您的
收入
可以写为
总和(订单产品.价格.税前-合并(订单产品.折扣,0))
,您的
CONCAT(订单产品.名称)
与刚才的
订单产品.名称
相同。谢谢Daniel。我应该知道,但我没有。对不起,我应该澄清一下。这是一个显示给定时间段内销售额的管理报告。第一部分只是总体合计(订单数量、总销售额、总发货量、总税费)。下面是销售产品的分类,包括总销售额和每种产品的单位数。@ChrisYount我更新了我的回复,随着这些报告的生成,这可能会使事情变得更容易。