mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-04 05:22:17 +00:00
86 lines
3.2 KiB
Markdown
86 lines
3.2 KiB
Markdown
# JSON
|
||
|
||
Outputs data in JSON format. Besides data tables, it also outputs column names and types, along with some additional information: the total number of output rows, and the number of rows that could have been output if there weren't a LIMIT. Example:
|
||
|
||
```sql
|
||
SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTALS ORDER BY c DESC LIMIT 5 FORMAT JSON
|
||
```
|
||
|
||
```json
|
||
{
|
||
"meta":
|
||
[
|
||
{
|
||
"name": "SearchPhrase",
|
||
"type": "String"
|
||
},
|
||
{
|
||
"name": "c",
|
||
"type": "UInt64"
|
||
}
|
||
],
|
||
|
||
"data":
|
||
[
|
||
{
|
||
"SearchPhrase": "",
|
||
"c": "8267016"
|
||
},
|
||
{
|
||
"SearchPhrase": "bathroom interior design",
|
||
"c": "2166"
|
||
},
|
||
{
|
||
"SearchPhrase": "yandex",
|
||
"c": "1655"
|
||
},
|
||
{
|
||
"SearchPhrase": "spring 2014 fashion",
|
||
"c": "1549"
|
||
},
|
||
{
|
||
"SearchPhrase": "freeform photos",
|
||
"c": "1480"
|
||
}
|
||
],
|
||
|
||
"totals":
|
||
{
|
||
"SearchPhrase": "",
|
||
"c": "8873898"
|
||
},
|
||
|
||
"extremes":
|
||
{
|
||
"min":
|
||
{
|
||
"SearchPhrase": "",
|
||
"c": "1480"
|
||
},
|
||
"max":
|
||
{
|
||
"SearchPhrase": "",
|
||
"c": "8267016"
|
||
}
|
||
},
|
||
|
||
"rows": 5,
|
||
|
||
"rows_before_limit_at_least": 141137
|
||
}
|
||
```
|
||
|
||
The JSON is compatible with JavaScript. To ensure this, some characters are additionally escaped: the slash ` /` is escaped as ` \/`; alternative line breaks ` U+2028` and ` U+2029`, which break some browsers, are escaped as ` \uXXXX`. ASCII control characters are escaped: backspace, form feed, line feed, carriage return, and horizontal tab are replaced with `\b`, `\f`, `\n`, `\r`, `\t` , as well as the remaining bytes in the 00-1F range using `\uXXXX` sequences. Invalid UTF-8 sequences are changed to the replacement character <20> so the output text will consist of valid UTF-8 sequences. For compatibility with JavaScript, Int64 and UInt64 integers are enclosed in double quotes by default. To remove the quotes, you can set the configuration parameter output_format_json_quote_64bit_integers to 0.
|
||
|
||
`rows` – The total number of output rows.
|
||
|
||
`rows_before_limit_at_least` The minimal number of rows there would have been without LIMIT. Output only if the query contains LIMIT.
|
||
If the query contains GROUP BY, rows_before_limit_at_least is the exact number of rows there would have been without a LIMIT.
|
||
|
||
`totals` – Total values (when using WITH TOTALS).
|
||
|
||
`extremes` – Extreme values (when extremes is set to 1).
|
||
|
||
This format is only appropriate for outputting a query result, but not for parsing (retrieving data to insert in a table).
|
||
See also the JSONEachRow format.
|