mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-17 21:24:28 +00:00
87 lines
3.2 KiB
Markdown
87 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 photo",
|
|||
|
"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.
|
|||
|
|