0

私は。。をしようとしています

  1. type二つ の 異なるの オブジェクトを 集める(PublishedそしてInReviewing同じ モデル からEvents,
  2. Publishedとの間の中間時間を求めCreated
  3. それらを日付別にグループ化します..

InReviewingそのため、日付を含む配列を返すことができ、どのタイプでも中程度の時差があり、毎日からPublisheda を共有できます。target_idSQLは秒を返すと思いますか?

例 :

[[Mon, 03 Dec 2012, 110000], [Thu, 13 Dec 2012, 2200000]]

私の生の SQL 構文には、いくつかの結論が欠けています。これは私がこれまでに持っているものです:

    SELECT target_id, DATE(created_at), COUNT(*)
    FROM (   SELECT target_id, DATE(created_at)
          FROM events
          WHERE created_at > '#{@start_time}'
          AND events.type = 'InReviewing'
          UNION ALL
          SELECT target_id, DATE(created_at)
          FROM events
          WHERE created_at > '#{@start_time}'
          AND events.type = 'Published'   
      ) tmp
    GROUP BY DATE(created_at)

#{@start_timeここではネイティブ コードを使用して Time を実装しているため、}` は気にしないでください。適切に動作します。

ありがとう!

4

1 に答える 1

1

私はあなたの質問を理解していないと思いますが、それでも試してみることにしました(また、現時点ではMySqlにアクセスできないため、この例はMS SQLからのものです):

    SELECT x.target_id, x.created_at AS InReviewingCreated, y.created_at AS PublishedCreated, DATEDIFF(SECOND, x.created_at, y.created_at) AS DiffSeconds 
FROM 
    (SELECT *
        FROM Events a 
        WHERE a.created_at > '#{@start_time}'
            AND a.type = 'InReviewing') x INNER JOIN

    (SELECT *
        FROM Events a 
        WHERE a.created_at > '#{@start_time}'
            AND a.type = 'Published') y ON x.target_id = y.target_id
ORDER BY x.created_at

これにより、各ターゲットがInReviewおよびPublishedであったときのタイムスタンプと、それらの間の秒数がわかります。私はあなたが欲しいものについて少し混乱しています...これが私があなたが望むものを「考える」ものです:

SELECT DATEPART(DAYOFYEAR, x.created_at), AVG(DATEDIFF(SECOND, x.created_at, y.created_at))
FROM 
    (SELECT *
        FROM Events a 
        WHERE a.created_at > '#{@start_time}'
            AND a.type = 'InReviewing') x INNER JOIN

    (SELECT *
        FROM Events a 
        WHERE a.created_at > '#{@start_time}'
            AND a.type = 'Published') y ON x.target_id = y.target_id
GROUP BY DATEPART(DAYOFYEAR, x.created_at)
ORDER BY DATEPART(DAYOFYEAR, x.created_at)

免責事項:私はあなたのテーブルスキーマを持っていないので、私のテストは正確には有効ではありません。セットアップ例と必要な出力を共有する場合は、より適切なクエリを提供できます。

お役に立てれば。

于 2012-12-13T21:57:53.703 に答える