mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-15 03:53:41 +00:00
64 lines
3.0 KiB
Markdown
64 lines
3.0 KiB
Markdown
|
---
|
|||
|
machine_translated: true
|
|||
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|||
|
---
|
|||
|
|
|||
|
# بند مجزا {#select-distinct}
|
|||
|
|
|||
|
اگر `SELECT DISTINCT` مشخص شده است, تنها ردیف منحصر به فرد در یک نتیجه پرس و جو باقی خواهد ماند. بنابراین تنها یک ردیف از تمام مجموعه از ردیف به طور کامل تطبیق در نتیجه باقی خواهد ماند.
|
|||
|
|
|||
|
## پردازش پوچ {#null-processing}
|
|||
|
|
|||
|
`DISTINCT` با این نسخهها کار میکند [NULL](../../syntax.md#null-literal) همانطور که اگر `NULL` یک مقدار خاص بودند, و `NULL==NULL`. به عبارت دیگر در `DISTINCT` نتایج, ترکیب های مختلف با `NULL` رخ می دهد تنها یک بار. این متفاوت است `NULL` پردازش در بسیاری از زمینه های دیگر.
|
|||
|
|
|||
|
## جایگزین ها {#alternatives}
|
|||
|
|
|||
|
ممکن است با استفاده از همان نتیجه حاصل شود [GROUP BY](group-by.md) در سراسر همان مجموعه ای از ارزش ها به عنوان مشخص شده به عنوان `SELECT` بند, بدون استفاده از هر گونه توابع کل. اما چند تفاوت از وجود دارد `GROUP BY` رویکرد:
|
|||
|
|
|||
|
- `DISTINCT` می توان همراه با `GROUP BY`.
|
|||
|
- چه زمانی [ORDER BY](order-by.md) حذف شده است و [LIMIT](limit.md) تعریف شده است, پرس و جو متوقف می شود در حال اجرا بلافاصله پس از تعداد مورد نیاز از ردیف های مختلف خوانده شده است.
|
|||
|
- بلوک های داده خروجی به عنوان پردازش می شوند, بدون انتظار برای کل پرس و جو را به پایان برساند در حال اجرا.
|
|||
|
|
|||
|
## محدودیت ها {#limitations}
|
|||
|
|
|||
|
`DISTINCT` پشتیبانی نمی شود اگر `SELECT` حداقل یک ستون جداگانه دارد.
|
|||
|
|
|||
|
## مثالها {#examples}
|
|||
|
|
|||
|
کلیک پشتیبانی با استفاده از `DISTINCT` و `ORDER BY` بند برای ستون های مختلف در یک پرس و جو. این `DISTINCT` بند قبل از اجرا `ORDER BY` بند بند.
|
|||
|
|
|||
|
جدول نمونه:
|
|||
|
|
|||
|
``` text
|
|||
|
┌─a─┬─b─┐
|
|||
|
│ 2 │ 1 │
|
|||
|
│ 1 │ 2 │
|
|||
|
│ 3 │ 3 │
|
|||
|
│ 2 │ 4 │
|
|||
|
└───┴───┘
|
|||
|
```
|
|||
|
|
|||
|
هنگام انتخاب داده ها با `SELECT DISTINCT a FROM t1 ORDER BY b ASC` پرس و جو, ما نتیجه زیر را دریافت کنید:
|
|||
|
|
|||
|
``` text
|
|||
|
┌─a─┐
|
|||
|
│ 2 │
|
|||
|
│ 1 │
|
|||
|
│ 3 │
|
|||
|
└───┘
|
|||
|
```
|
|||
|
|
|||
|
اگر ما جهت مرتب سازی را تغییر دهیم `SELECT DISTINCT a FROM t1 ORDER BY b DESC` ما نتیجه زیر را دریافت می کنیم:
|
|||
|
|
|||
|
``` text
|
|||
|
┌─a─┐
|
|||
|
│ 3 │
|
|||
|
│ 1 │
|
|||
|
│ 2 │
|
|||
|
└───┘
|
|||
|
```
|
|||
|
|
|||
|
سطر `2, 4` قبل از مرتب سازی قطع شد.
|
|||
|
|
|||
|
نگاهی به این ویژگی پیاده سازی به حساب زمانی که برنامه نویسی نمایش داده شد.
|