2017-04-24 4 views
0

年を取得し、レコードのカウントを取得するためにグループを適用したい。このために私のSQLクエリがある -SQLクエリでセンスクエリを作成する

select substr(lastModified,0,4) , count(*) from EOM group by substr(lastModified,0,4). 

私は上記のクエリを作成している -

 { 
"size":0, 
    "aggs": { 
     "profit": { 
      "scripted_metric": { 
       "init_script" : "_agg.transactions = []", 
       "map_script" : "_agg.transactions.add(doc.timeModified.date.getYear())", 
       "combine_script" : "return _agg.transactions" 

      } 
     }, 
     "aggs":{ 
      "terms":{ 
       "field":"profit" 
      } 
     } 
    } 
} 

RESULT -

{ 
    "aggregations": { 
     "profit": { 
      "value": [ 
       [ 
        2014, 
        2015, 
        2016, 
        2015, 
        2017 

       ], 
       [ 
        2015, 
        2015, 
        2016, 
        2016, 
        2017 
       ] 
      ] 
     }, 
     "aggs": { 
      "doc_count_error_upper_bound": 0, 
      "sum_other_doc_count": 0, 
      "buckets": [] 
     } 
    } 
} 

それは私の年を与えるが、利益にaggrgation適用されないとそのバケットは空白です。

上記のSQLクエリのセンスクエリが必要です。

+0

あなたは上記の投稿のクエリで出力/エラーとは何ですか? –

+0

@TimBiegeleisen投稿更新!! –

+0

投稿更新!!!!!! –

答えて

0

なぜスクリプトメトリックの代わりに日付範囲集計を使用しないのですか?

(唯一の欠点は、手動範囲セクションの年を提供しなければならないということです)

+0

データ範囲には範囲が必要で、インデックスに開始日と終了年の値がありません –

+0

年ごとの範囲が必要な場合は、毎年1月1日から12月31日まで指定できます –

+0

更新ポスト私はノーを欲しい。結果の繰り返しである年のカウントの数(クエリごとのグループを意味する) –

関連する問題