Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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
有人能告诉我这是不是我正在使用的sql查询吗?_Sql_Postgresql - Fatal编程技术网

有人能告诉我这是不是我正在使用的sql查询吗?

有人能告诉我这是不是我正在使用的sql查询吗?,sql,postgresql,Sql,Postgresql,因此,我试图从事务表中找到订单数量。以下是我使用的查询: select t.productid, EXTRACT(week from t.dt)as Week_, count (t.productid) as Orders FROM (SELECT distinct productid, dt from Transaction WHERE client='abc') as t GROUP BY t.productid, Week_ ORDER BY Wee

因此,我试图从事务表中找到订单数量。以下是我使用的查询:

   select t.productid,
   EXTRACT(week from t.dt)as Week_,
   count (t.productid) as Orders
   FROM (SELECT distinct productid, dt from Transaction  WHERE client='abc') as t 
   GROUP BY t.productid, Week_
   ORDER BY Week_ asc;
我试图找到每个productid的唯一订单,按周分组。这是正确的方法吗?我真的希望能有一些见解和意见。如果改用此查询,它只会为每个productid提供1个订单:

select t.productid,EXTRACT(week from t.dt) as WEEK, count(distinct t.productid) as  Orders  from 
Transaction t
where t.client ='abc'
GROUP BY WEEK, t.productid
ORDER BY WEEK asc;

这是不正确的。

不,你的方法并不完全正确。客户可以在一周内以两种不同的订单订购同一产品两次。交易表中可能有某种类型的
orderid
。如果是,您可以执行以下操作:

   SELECT t.productid, EXTRACT(week from t.dt)as Week_, count(distinct orderid) as orders
   FROM Transaction
   WHERE client ='abc'
   GROUP BY t.productid, Week_
   ORDER BY Week_ asc;
如果您想要客户端的数量,您可以执行以下操作:

   SELECT t.productid, EXTRACT(week from t.dt)as Week_, count(distinct client) as clients
   FROM Transaction
   GROUP BY t.productid, Week_
   ORDER BY Week_ asc;

谢谢你的快速回复!