[[data-table]]
=== Data Table

include::y-axis-aggs.asciidoc[]

The rows of the data table are called _buckets_. You can define buckets to split the table into rows or to split
the table into additional tables.

Each bucket type supports the following aggregations:

*Date Histogram*:: A {ref}/search-aggregations-bucket-datehistogram-aggregation.html[_date histogram_] is built from a 
numeric field and organized by date. You can specify a time frame for the intervals in seconds, minutes, hours, days, 
weeks, months, or years.
*Histogram*:: A standard {ref}/search-aggregations-bucket-histogram-aggregation.html[_histogram_] is built from a 
numeric field. Specify an integer interval for this field. Select the *Show empty buckets* checkbox to include empty 
intervals in the histogram.
*Range*:: With a {ref}/search-aggregations-bucket-range-aggregation.html[_range_] aggregation, you can specify ranges 
of values for a numeric field. Click *Add Range* to add a set of range endpoints. Click the red *(x)* symbol to remove 
a range.
*Terms*:: A {ref}/search-aggregations-bucket-terms-aggregation.html[_terms_] aggregation enables you to specify the top 
or bottom _n_ elements of a  given field to display, ordered by count or a custom metric.
*Filters*:: You can specify a set of {ref}/search-aggregations-bucket-filters-aggregation.html[_filters_] for the data. 
You can specify a filter as a query string or in JSON format, just as in the Discover search bar. Click *Add Filter* to 
add another filter.
*Significant Terms*:: Displays the results of the experimental 
{ref}/search-aggregations-bucket-significantterms-aggregation.html[_significant terms_] aggregation. The value of the 
*Size* parameter defines the number of entries this aggregation returns.
*Geohash*:: The {ref}/search-aggregations-bucket-geohashgrid-aggregation.html[_geohash_] aggregation displays points 
based on the geohash coordinates.

Once you've specified a bucket type aggregation, you can define sub-aggregations to refine the visualization. Click 
*+ Add Sub Aggregation* to define a sub-aggregation, then choose *Split Rows* or *Split Table*, then select a 
sub-aggregation from the list of types.

You can use the up or down arrows to the right of the aggregation's type to change the aggregation's priority.

You can click the *Advanced* link to display more customization options for your metrics or bucket aggregation:

*Exclude Pattern*:: Specify a pattern in this field to exclude from the results.
*Exclude Pattern Flags*:: A standard set of Java flags for the exclusion pattern.
*Include Pattern*:: Specify a pattern in this field to include in the results.
*Include Pattern Flags*:: A standard set of Java flags for the inclusion pattern.
*JSON Input*:: A text field where you can add specific JSON-formatted properties to merge with the aggregation 
definition, as in the following example:

[source,shell]
{ "script" : "doc['grade'].value * 1.2" }

NOTE: In Elasticsearch releases 1.4.3 and later, this functionality requires you to enable 
{ref}/modules-scripting[dynamic Groovy scripting].

The availability of these options varies depending on the aggregation you choose.

Select *view options* to change the following aspects of the table:

*Per Page*:: This field controls the pagination of the table. The default value is ten rows per page.

Checkboxes are available to enable and disable the following behaviors:

*Show metrics for every bucket/level*:: Check this box to display the intermediate results for each bucket aggregation.
*Show partial rows*:: Check this box to display a row even when there is no result.

NOTE: Enabling these behaviors may have a substantial effect on performance.