Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SQL中对组进行计数_Mysql_Sql_Group By - Fatal编程技术网

Mysql 在SQL中对组进行计数

Mysql 在SQL中对组进行计数,mysql,sql,group-by,Mysql,Sql,Group By,我需要创建一个对GROUPBY子句计数的查询。明确地 在Order_ID和SUB_ID列上,统计每个Order_ID和SUB_ID的产品_ID数 应该是这样的: 但是,数据设置在奇数一侧,获得减去计数列的信息的唯一方法当然是: SELECT tbl1.Order_Id ,tbl1.Sub_Id ,tbl1.Product_Id ,tbl1.Product_Value ,tbl2.Product_Owner ,tbl2.Owner_Id FROM

我需要创建一个对GROUPBY子句计数的查询。明确地 在Order_ID和SUB_ID列上,统计每个Order_ID和SUB_ID的产品_ID数

应该是这样的:

但是,数据设置在奇数一侧,获得减去计数列的信息的唯一方法当然是:

SELECT
    tbl1.Order_Id
    ,tbl1.Sub_Id
    ,tbl1.Product_Id
    ,tbl1.Product_Value
    ,tbl2.Product_Owner
    ,tbl2.Owner_Id

FROM
tbl1 AS tbl1
LEFT OUTER JOIN
    tbl2 AS tbl2 ON tbl1.Order_Id=tbl2.Order_Id AND tbl1.Sub_Id=tbl2.Sub_Id
我该如何添加这样一个专栏?

我想您只需要分组方式:

由于查询仅从tbl1返回行并使用左联接,因此您应该能够执行以下操作:

SELECT tbl1.Order_Id, tbl1.Sub_Id,
       COUNT(tbl1.Product_Id)
FROM tbl1 
GROUP BY tbl1.Order_Id, tbl1.Sub_Id;
编辑:

我明白了,这是样本数据。在这种情况下,您可能只需要行号:


这将返回总计数,我想要一个累积计数。但我喜欢把它作为一张单独的桌子放在一起。
SELECT tbl1.Order_Id, tbl1.Sub_Id,
       COUNT(tbl1.Product_Id)
FROM tbl1 
GROUP BY tbl1.Order_Id, tbl1.Sub_Id;
SELECT tbl1.Order_Id, tbl1.Sub_Id, tbl1.Product_Id, tbl1.Product_Value,
       tbl2.Product_Owner, tbl2.Owner_Id
       ROW_NUMBER() OVER (PARTITION BY tbl1.Order_Id, tbl1.Sub_Id ORDER BY tbl1.Product_Id) as seqnum
FROM tbl1 LEFT OUTER JOIN
     tbl2 
     ON tbl1.Order_Id = tbl2.Order_Id AND
        tbl1.Sub_Id = tbl2.Sub_Id;