2017-12-16 27 views
0

カードは1日に複数回スワイプします。私が持っているデータは、カード番号とテーブルの日付です。私はそれらを集約し、新しい列にスワイプの数を表示するユーザー定義関数を作成しようとしています。SQL Server集計/日付の集計

入力としてカード番号を渡します。

私は2012年

5678907 2017-06-11 
5678907 2017-06-11 
5678907 2017-06-11 
5678907 2017-06-14 
5678907 2017-06-15 

出力

5678907 2017-06-11 3 
5678907 2017-06-14 1 
5678907 2017-06-15 1  
+1

「COUNT()」を使用してください:google "mysql count by group" – SherylHohman

答えて

1

は、単にこれを行う別の方法があるcount()

select Card, [date], count([date]) [Swipecount] from table 
group by Card, [date] 
0

集計関数でgroup by句の使用SQL Serverを使用しています -

SELECT DISTINCT 
[Card number],[Date],COUNT(*) OVER (PARTITION BY [Card number],[Date]) cnt 
FROM yourtableName 

グループ別に使用している場合は、COUNT(*)も使用してください。 COUNT(日付)/ Count(列) - NULL値を無視します. /日のいずれかがNULLの場合は、出力として0になります。

  SELECT [Card number],[Date],COUNT(*) cnt 
      FROM 
      (
       select 5678907 [Card number],'2017-06-11' [Date] UNION ALL 
       select 5678907 ,'2017-06-11' UNION ALL 
       select 5678907 ,'2017-06-11' UNION ALL 
       select 5678907 ,'2017-06-14' UNION ALL 
       select 5678907 ,NULL 
      )t 
      GROUP BY [Card number],[Date] 

      /*------------------------ 
      OUTPUT 
      ------------------------*/ 
      Card number Date  cnt 
      ----------- ---------- ----------- 
      5678907  NULL  1 
      5678907  2017-06-11 3 
      5678907  2017-06-14 1 

      (3 row(s) affected)