mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Update order-by.md
This commit is contained in:
parent
395b41bf8e
commit
9bbc39f6d1
@ -274,7 +274,6 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en';
|
|||||||
Модификатор `WITH FILL` может быть установлен после `ORDER BY expr` с опциональными параметрами `FROM expr`, `TO expr` и `STEP expr`.
|
Модификатор `WITH FILL` может быть установлен после `ORDER BY expr` с опциональными параметрами `FROM expr`, `TO expr` и `STEP expr`.
|
||||||
Все пропущенные значения для колонки `expr` будут заполнены значениями, соответствующими предполагаемой последовательности значений колонки, другие колонки будут заполнены значениями по умолчанию.
|
Все пропущенные значения для колонки `expr` будут заполнены значениями, соответствующими предполагаемой последовательности значений колонки, другие колонки будут заполнены значениями по умолчанию.
|
||||||
|
|
||||||
|
|
||||||
Используйте следующую конструкцию для заполнения нескольких колонок с модификатором `WITH FILL` с необязательными параметрами после каждого имени поля в секции `ORDER BY`.
|
Используйте следующую конструкцию для заполнения нескольких колонок с модификатором `WITH FILL` с необязательными параметрами после каждого имени поля в секции `ORDER BY`.
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
@ -284,7 +283,7 @@ ORDER BY expr [WITH FILL] [FROM const_expr] [TO const_expr] [STEP const_numeric_
|
|||||||
`WITH FILL` может быть применен к полям с числовыми (все разновидности float, int, decimal) или временными (все разновидности Date, DateTime) типами. В случае применения к полям типа `String` недостающие значения заполняются пустой строкой.
|
`WITH FILL` может быть применен к полям с числовыми (все разновидности float, int, decimal) или временными (все разновидности Date, DateTime) типами. В случае применения к полям типа `String` недостающие значения заполняются пустой строкой.
|
||||||
Когда не определен `FROM const_expr`, последовательность заполнения использует минимальное значение поля `expr` из `ORDER BY`.
|
Когда не определен `FROM const_expr`, последовательность заполнения использует минимальное значение поля `expr` из `ORDER BY`.
|
||||||
Когда не определен `TO const_expr`, последовательность заполнения использует максимальное значение поля `expr` из `ORDER BY`.
|
Когда не определен `TO const_expr`, последовательность заполнения использует максимальное значение поля `expr` из `ORDER BY`.
|
||||||
Когда `STEP const_numeric_expr` определен, `const_numeric_expr` интерпретируется `как есть` для числовых типов, как `дни` для типа Date и как `секунды` для типа DateTime.
|
Когда `STEP const_numeric_expr` определен, `const_numeric_expr` интерпретируется "как есть" для числовых типов, как "дни" для типа `Date` и как "секунды" для типа `DateTime`.
|
||||||
|
|
||||||
Когда `STEP const_numeric_expr` не указан, тогда используется `1.0` для числовых типов, `1 день` для типа Date и `1 секунда` для типа DateTime.
|
Когда `STEP const_numeric_expr` не указан, тогда используется `1.0` для числовых типов, `1 день` для типа Date и `1 секунда` для типа DateTime.
|
||||||
|
|
||||||
@ -297,7 +296,6 @@ SELECT n, source FROM (
|
|||||||
```
|
```
|
||||||
|
|
||||||
Результат:
|
Результат:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
┌─n─┬─source───┐
|
┌─n─┬─source───┐
|
||||||
│ 1 │ original │
|
│ 1 │ original │
|
||||||
@ -307,7 +305,6 @@ SELECT n, source FROM (
|
|||||||
```
|
```
|
||||||
|
|
||||||
Тот же запрос после применения модификатора `WITH FILL`:
|
Тот же запрос после применения модификатора `WITH FILL`:
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT n, source FROM (
|
SELECT n, source FROM (
|
||||||
SELECT toFloat32(number % 10) AS n, 'original' AS source
|
SELECT toFloat32(number % 10) AS n, 'original' AS source
|
||||||
@ -338,12 +335,10 @@ SELECT n, source FROM (
|
|||||||
Для случая с несколькими полями `ORDER BY field2 WITH FILL, field1 WITH FILL` порядок заполнения будет соответствовать порядку полей в секции `ORDER BY`.
|
Для случая с несколькими полями `ORDER BY field2 WITH FILL, field1 WITH FILL` порядок заполнения будет соответствовать порядку полей в секции `ORDER BY`.
|
||||||
|
|
||||||
Пример:
|
Пример:
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT
|
SELECT
|
||||||
toDate((number * 10) * 86400) AS d1,
|
toDate((number * 10) * 86400) AS d1,
|
||||||
toDate(number * 86400) AS d2,
|
toDate(number * 86400) AS d2,
|
||||||
|
|
||||||
'original' AS source
|
'original' AS source
|
||||||
FROM numbers(10)
|
FROM numbers(10)
|
||||||
WHERE (number % 3) = 1
|
WHERE (number % 3) = 1
|
||||||
@ -353,7 +348,6 @@ ORDER BY
|
|||||||
```
|
```
|
||||||
|
|
||||||
Результат:
|
Результат:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
@ -368,7 +362,6 @@ ORDER BY
|
|||||||
|
|
||||||
Поле `d1` не заполняется и использует значение по умолчанию. Поскольку у нас нет повторяющихся значений для `d2`, мы не можем правильно рассчитать последователность заполнения для `d1`.
|
Поле `d1` не заполняется и использует значение по умолчанию. Поскольку у нас нет повторяющихся значений для `d2`, мы не можем правильно рассчитать последователность заполнения для `d1`.
|
||||||
|
|
||||||
|
|
||||||
Cледующий запрос (с измененым порядком в ORDER BY):
|
Cледующий запрос (с измененым порядком в ORDER BY):
|
||||||
```sql
|
```sql
|
||||||
SELECT
|
SELECT
|
||||||
@ -383,7 +376,6 @@ ORDER BY
|
|||||||
```
|
```
|
||||||
|
|
||||||
Результат:
|
Результат:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
┌───d1───────┬───d2───────┬─source───┐
|
┌───d1───────┬───d2───────┬─source───┐
|
||||||
│ 1970-01-11 │ 1970-01-02 │ original │
|
│ 1970-01-11 │ 1970-01-02 │ original │
|
||||||
|
Loading…
Reference in New Issue
Block a user