【问题标题】:Days Since Last Help Ticket was Filed自上次提交帮助单以来的天数
【发布时间】:2015-12-22 14:45:05
【问题描述】:

我正在尝试创建一份报告,以显示客户提交票证的最后日期。

客户可以提交数十张票。我想知道最后一张票是什么时候提交的,并显示他们已经过了多少天。

我拥有的字段是:

客户,

Ticket_id,

Date_Closed

所有来自同一张表“Tickets”

我想按最短日期对门票进行排名?我尝试使用此查询来获取一些东西,但它给了我来自客户的所有门票。 (我在一个名为 Domo 的产品中使用 SQL)

select * from (select *, rank() over (partition by "Ticket_id" 
                order by "Date_Closed" desc) as date_order
from tickets ) zd
where date_order = 1

【问题讨论】:

    标签: sql amazon-redshift domo


    【解决方案1】:

    这应该够简单了,

      SELECT customer,
         MAX (date_closed) last_date,
       ROUND((SYSDATE - MAX (date_closed)),0) days_since_last_ticket_logged
        FROM emp
    GROUP BY customer
    

    【讨论】:

      【解决方案2】:
      select Customer, datediff(day, date_closed, current_date) as days_since_last_tkt
      from 
      (select *, rank() over (partition by Customer order by "Date_Closed" desc) as date_order
      from tickets) zd
      join tickets t on zd.date_closed = t.date_closed
      where zd.date_order = 1
      

      或者你可以简单地做

      select customer, datediff(day, max(Date_closed), current_date) as days_since_last_tkt
      from tickets
      group by customer
      

      选择其他字段

      select t.* 
      from tickets t
      join (select customer, max(Date_closed) as mxdate,
            datediff(day, max(Date_closed), current_date) as days_since_last_tkt
            from tickets
            group by customer) tt 
      on t.customer = tt.customer and tt.mxdate = t.date_closed
      

      【讨论】:

      • 所以我想我喜欢这个并且会尝试一下。我想避免使用“max”函数,因为您必须对 select 语句中的所有字段进行分组。我想引入大量字段,以便进一步分析数据。
      • 如果您需要其他字段,请将其作为子查询并join 将其添加到原始表中。
      • 啊,好吧,这是有道理的。我将拉入票证并加入它。我正在使用 Domo,所以它不是典型的 SQL Studio。但这很有帮助
      • 我不应该加入票证 ID 而不是“客户”吗?
      【解决方案3】:

      我会通过一个简单的子查询来选择客户的最后关闭日期。然后将此与今天与datediff() 进行比较,以获取自上次关闭以来的天数。

      Select 
      LastTicket.Customer,
      LastTicket.LastClosedDate,
      DateDiff(day,LastTicket.LastClosedDate,getdate()) as DaysSinceLastClosed
      
      From    
      (select
      tickets.customer
      max(tickets.dateClosed) as LastClosedDate
      from tickets
      Group By tickets.Customer) as LastTicket
      

      【讨论】:

        【解决方案4】:

        根据回复,这就是我所做的:

        select "Customer",
        Max("date_closed") "last_date,
        
        round(datediff(DAY, CURRENT_DATE, max("date_closed")), 0) as "Closed_date"
        
        from tickets
        
        group by "Customer"
        ORDER BY "Customer"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-04
          • 2017-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多