0

そのようにフォーマットされたデータを収集する必要があるテーブルがあります。

USER_id|| Reason_ID || CALLDATETIME||
18164564          4     2013-02-25 00:05:25
18164564          2     2013-02-24 00:06:30
18164286          8     2013-01-19 15:35:16
18164286          1     2013-02-18 12:31:59

表には他にも列がありますが、この特定の例では問題にならないと思います。したがって、MAX (CALLDATETIME) を持つすべての user_id のリストが必要ですが、レポートには 1 つの user_id だけが必要です。私は、distinct と group by および order by の構文に関しては、いつも少し混乱しているようです。

以前のスレッドを見てみましたが、結果がどのように得られたのかよくわかりませんでした。また、そのスレッドも MySQL の例でした。

4

2 に答える 2

2

reason_ID が必要な場合はGROUP BY、CTE として実行し、後で reason_id に参加できます。

WITH max_cte AS
(
  select user_id, MAX(calldatetime) MaxCalldatetime
  from [tablename]
  group by user_id
)
SELECT max_cte.*, [tablename].reason_id
FROM max_cte
JOIN [tablename] 
  ON max_cte.user_id = [tablename].user_id
  AND max_cte.MaxCalldatetime = [tablename].Calldatetime
于 2013-03-01T18:04:55.927 に答える
1

このようなものが動作するはずです

selct user_id, max(calldatetime) maxcalldatetime
from yourtable
where whatever
group by user_id
于 2013-03-01T17:52:52.680 に答える