Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 查找id销售达到某个级别的日期_Sql - Fatal编程技术网

Sql 查找id销售达到某个级别的日期

Sql 查找id销售达到某个级别的日期,sql,Sql,我需要找到每个用户支付的金额超过100美元的日期。我有以下格式的表格: +----------------------------------------+------------+----+ | pay_date, user_id, transaction_sum | | | +----------------------------------------+------------+----+ | 01/01/14, A1, $2

我需要找到每个用户支付的金额超过100美元的日期。我有以下格式的表格:

+----------------------------------------+------------+----+
|     pay_date, user_id, transaction_sum |            |    |
+----------------------------------------+------------+----+
|     01/01/14, A1,      $2              |            |    |
|     01/01/14, A2,      $5              |            |    |
|     01/01/14, B1,      $10             |            |    |
|     03/01/14, A1,      $2              |            |    |
|     03/01/14, B1,      $2              |            |    |
|     03/01/14, C1,      $5              |            |    |
|     04/01/14, A3,      $2              |            |    |
|     04/01/14, A3,      $20             |            |    |
|     04/01/14, C1,      $5              |            |    |
+----------------------------------------+------------+----+
    ...

(ordered by pay_date)
我希望得到如下表格的结果:

user_id, pay_date
A1,      03/03/14
A2,      30/03/14
A3,      22/05/14
B1,      01/01/15
C1,      12/10/14
一些用户支付的总累计金额将超过100美元,但我需要超过的日期。对于其他用户,它不会超过,我不需要他们在表中

如果我解释得不够清楚,我道歉
谢谢

你的例子并不完全像你的问题所要求的那样

如果你想要你的例子,那么你可以简单地做

select user_id, pay_date from TABLE where transaction_sum > 100;

AFAIK红移支持窗口聚合函数:

SELECT user_id, MIN(pay_date)
FROM 
 (
   SELECT pay_date, user_id,
      SUM(transaction_sum) -- cumulative sum based on pay_date
      OVER (PARTITION BY user_id
            ORDER BY pay_date
            ROWS UNBOUNDED PRECEDING) AS cum_sum
   FROM tab
 ) AS dt
WHERE cum_sum > 100 -- only rows where cumulative sum exceeds limit 
GROUP BY user_id

您使用的是哪种数据库管理系统?(日期/时间功能通常是特定于产品的。)到目前为止,您自己做了什么?有什么努力吗?@jarlh Transact-SQL如果我正确理解了你的问题(Amazon Redshift)@AndyKorneyev这实际上是我一直在做的一些工作的一部分,这项工作就是要知道用户花100美元需要多长时间(对于那些花费大于等于100美元的用户),我知道如何做其余的事情,但我想你对这部分很陌生,这是非常优雅的解决方案!我很遗憾我的名声不让我投票支持。谢谢你的回答,德诺思为这个案子提供了一个非常有用的建议