ClickHouse/docs/tr/sql_reference/functions/other_functions.md
2020-04-15 16:56:49 +03:00

34 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true e8cd92bba3 66 Diğer

Diğer fonksiyonlar

hostnamename()

Bu işlevin gerçekleştirildiği ana bilgisayarın adını içeren bir dize döndürür. Dağıtılmış işlem için, bu işlev uzak bir sunucuda gerçekleştirilirse, uzak sunucu ana bilgisayarının adıdır.

FQDN

Tam etki alanı adını döndürür.

Sözdizimi

fqdn();

Bu işlev büyük / küçük harf duyarsızdır.

Döndürülen değer

  • Tam etki alanı adı ile dize.

Tür: String.

Örnek

Sorgu:

SELECT FQDN();

Sonuç:

┌─FQDN()──────────────────────────┐
│ clickhouse.ru-central1.internal │
└─────────────────────────────────┘

basename

Son eğik çizgi veya ters eğik çizgiden sonra bir dizenin sondaki kısmını ayıklar. Bu işlev, genellikle bir yoldan dosya adını ayıklamak için kullanılır.

basename( expr )

Parametre

  • expr — Expression resulting in a Dize type value. Tüm ters eğik çizgilerin ortaya çıkan değerden kaçması gerekir.

Döndürülen Değer

İçeren bir dize:

  • Son eğik çizgi veya ters eğik çizgiden sonra bir dizenin sondaki kısmı.

    If the input string contains a path ending with slash or backslash, for example, `/` or `c:\`, the function returns an empty string.
    
  • Eğik çizgi veya ters eğik çizgi yoksa orijinal dize.

Örnek

SELECT 'some/long/path/to/file' AS a, basename(a)
┌─a──────────────────────┬─basename('some\\long\\path\\to\\file')─┐
│ some\long\path\to\file │ file                                   │
└────────────────────────┴────────────────────────────────────────┘
SELECT 'some\\long\\path\\to\\file' AS a, basename(a)
┌─a──────────────────────┬─basename('some\\long\\path\\to\\file')─┐
│ some\long\path\to\file │ file                                   │
└────────────────────────┴────────────────────────────────────────┘
SELECT 'some-file-name' AS a, basename(a)
┌─a──────────────┬─basename('some-file-name')─┐
│ some-file-name │ some-file-name             │
└────────────────┴────────────────────────────┘

visibleWidth(x)

Değerleri konsola metin biçiminde (sekmeyle ayrılmış) çıkarırken yaklaşık genişliği hesaplar. Bu işlev, sistem tarafından güzel formatların uygulanması için kullanılır.

NULL karşılık gelen bir dize olarak temsil edilir NULL içinde Pretty biçimliler.

SELECT visibleWidth(NULL)
┌─visibleWidth(NULL)─┐
│                  4 │
└────────────────────┘

toTypeName (x)

Geçirilen bağımsız değişken türü adını içeren bir dize döndürür.

Eğer NULL fonksiyona girdi olarak geçirilir, daha sonra Nullable(Nothing) bir iç karşılık gelen türü NULL Clickhouse'da temsil.

blockSize()

Bloğun boyutunu alır. Clickhouse'da, sorgular her zaman bloklarda (sütun parçaları kümeleri) çalıştırılır. Bu işlev, aradığınız bloğun boyutunu almanızı sağlar.

materialize (x)

Bir sabiti yalnızca bir değer içeren tam bir sütuna dönüştürür. Clickhouse'da, tam sütunlar ve sabitler bellekte farklı şekilde temsil edilir. İşlevler, sabit argümanlar ve normal argümanlar için farklı şekilde çalışır (farklı kod yürütülür), ancak sonuç hemen hemen her zaman aynıdır. Bu işlev, bu davranış hata ayıklama içindir.

ignore(…)

Dahil olmak üzere herhangi bir argümanı kabul eder NULL. Her zaman 0 döndürür. Ancak, argüman hala değerlendirilir. Bu kriterler için kullanılabilir.

uyku (saniye)

Uykular seconds her veri bloğunda saniye. Bir tamsayı veya kayan noktalı sayı belirtebilirsiniz.

sleepEachRow (saniye)

Uykular seconds her satırda saniye. Bir tamsayı veya kayan noktalı sayı belirtebilirsiniz.

currentDatabase()

Geçerli veritabanının adını döndürür. Bu işlevi, veritabanını belirtmeniz gereken bir tablo oluştur sorgusunda tablo altyapısı parametrelerinde kullanabilirsiniz.

currentUser()

Geçerli kullanıcının oturum açma döndürür. Kullanıcı girişi, bu başlatılan sorgu, durumda distibuted sorguda iade edilecektir.

SELECT currentUser();

Takma ad: user(), USER().

Döndürülen değerler

  • Geçerli kullanıcının girişi.
  • Disributed sorgu durumunda sorgu başlatılan kullanıcının giriş.

Tür: String.

Örnek

Sorgu:

SELECT currentUser();

Sonuç:

┌─currentUser()─┐
│ default       │
└───────────────┘

isFinite (x)

Float32 ve Float64 kabul eder ve bağımsız değişken sonsuz değilse ve bir NaN değilse, Uint8'i 1'e eşit olarak döndürür, aksi halde 0.

isİnfinite (x)

Float32 ve Float64 kabul eder ve bağımsız değişken sonsuz ise 1'e eşit Uİnt8 döndürür, aksi takdirde 0. Bir NaN için 0 döndürüldüğünü unutmayın.

ifNotFinite

Kayan nokta değerinin sonlu olup olmadığını kontrol eder.

Sözdizimi

ifNotFinite(x,y)

Parametre

Döndürülen değer

  • x eğer x son isludur.
  • y eğer x sonlu değildir.

Örnek

Sorgu:

SELECT 1/0 as infimum, ifNotFinite(infimum,42)

Sonuç:

┌─infimum─┬─ifNotFinite(divide(1, 0), 42)─┐
│     inf │                            42 │
└─────────┴───────────────────────────────┘

Kullanarak benzer sonuç alabilirsiniz üçlü operatör: isFinite(x) ? x : y.

ısnan (x)

Float32 ve Float64 kabul eder ve bağımsız değişken bir NaN, aksi takdirde 0 ise 1'e eşit uint8 döndürür.

hasColumnİnTable([hostname[, username[, password]],] database, table, column)

Sabit dizeleri kabul eder: veritabanı adı, tablo adı ve sütun adı. Bir sütun varsa 1'e eşit bir uint8 sabit ifadesi döndürür, aksi halde 0. Hostname parametresi ayarlanmışsa, sınama uzak bir sunucuda çalışır. Tablo yoksa, işlev bir özel durum atar. İç içe veri yapısındaki öğeler için işlev, bir sütunun varlığını denetler. İç içe veri yapısının kendisi için işlev 0 döndürür.

bar

Unicode-art diyagramı oluşturmaya izin verir.

bar(x, min, max, width) genişliği orantılı olan bir bant çizer (x - min) ve eşit width karakterler ne zaman x = max.

Parametre:

  • x — Size to display.
  • min, max — Integer constants. The value must fit in Int64.
  • width — Constant, positive integer, can be fractional.

Bant, bir sembolün sekizde birine doğrulukla çizilir.

Örnek:

SELECT
    toHour(EventTime) AS h,
    count() AS c,
    bar(c, 0, 600000, 20) AS bar
FROM test.hits
GROUP BY h
ORDER BY h ASC
┌──h─┬──────c─┬─bar────────────────┐
│  0 │ 292907 │ █████████▋         │
│  1 │ 180563 │ ██████             │
│  2 │ 114861 │ ███▋               │
│  3 │  85069 │ ██▋                │
│  4 │  68543 │ ██▎                │
│  5 │  78116 │ ██▌                │
│  6 │ 113474 │ ███▋               │
│  7 │ 170678 │ █████▋             │
│  8 │ 278380 │ █████████▎         │
│  9 │ 391053 │ █████████████      │
│ 10 │ 457681 │ ███████████████▎   │
│ 11 │ 493667 │ ████████████████▍  │
│ 12 │ 509641 │ ████████████████▊  │
│ 13 │ 522947 │ █████████████████▍ │
│ 14 │ 539954 │ █████████████████▊ │
│ 15 │ 528460 │ █████████████████▌ │
│ 16 │ 539201 │ █████████████████▊ │
│ 17 │ 523539 │ █████████████████▍ │
│ 18 │ 506467 │ ████████████████▊  │
│ 19 │ 520915 │ █████████████████▎ │
│ 20 │ 521665 │ █████████████████▍ │
│ 21 │ 542078 │ ██████████████████ │
│ 22 │ 493642 │ ████████████████▍  │
│ 23 │ 400397 │ █████████████▎     │
└────┴────────┴────────────────────┘

dönüştürmek

Bir değeri, bazı öğelerin açıkça tanımlanmış eşlemesine göre diğer öğelere dönüştürür. Bu fonksiyonun iki varyasyonu vardır:

transform (x, array_from, array_to, varsayılan)

x What to transform.

array_from Constant array of values for converting.

array_to Constant array of values to convert the values in from -e doğru.

default Which value to use if x değer anylerden hiçbir equaline eşit değildir. from.

array_from ve array_to Arrays of the same size.

Türler:

transform(T, Array(T), Array(U), U) -> U

T ve U sayısal, dize veya tarih veya DateTime türleri olabilir. Aynı harfin belirtildiği (t veya U), sayısal türler için bunlar eşleşen türler değil, ortak bir türe sahip türler olabilir. Örneğin, ilk bağımsız değişken Int64 türüne sahip olabilir, ikincisi ise Array(Uİnt16) türüne sahiptir.

Eğer... x değer, içindeki öğelerden birine eşittir. array_from array, varolan öğeyi döndürür (aynı numaralandırılır) array_to dizi. Aksi takdirde, döner default. İçinde birden fazla eşleşen öğe varsa array_from, maçlardan birini döndürür.

Örnek:

SELECT
    transform(SearchEngineID, [2, 3], ['Yandex', 'Google'], 'Other') AS title,
    count() AS c
FROM test.hits
WHERE SearchEngineID != 0
GROUP BY title
ORDER BY c DESC
┌─title─────┬──────c─┐
│ Yandex    │ 498635 │
│ Google    │ 229872 │
│ Other     │ 104472 │
└───────────┴────────┘

transform (x, array_from, array_to)

İlk vary thatasyon differsdan farklıdır. default argüman atlandı. Eğer... x değer, içindeki öğelerden birine eşittir. array_from array, eşleşen öğeyi (aynı numaralandırılmış) döndürür array_to dizi. Aksi takdirde, döner x.

Türler:

transform(T, Array(T), Array(T)) -> T

Örnek:

SELECT
    transform(domain(Referer), ['yandex.ru', 'google.ru', 'vk.com'], ['www.yandex', 'example.com']) AS s,
    count() AS c
FROM test.hits
GROUP BY domain(Referer)
ORDER BY count() DESC
LIMIT 10
┌─s──────────────┬───────c─┐
│                │ 2906259 │
│ www.yandex     │  867767 │
│ ███████.ru     │  313599 │
│ mail.yandex.ru │  107147 │
│ ██████.ru      │  100355 │
│ █████████.ru   │   65040 │
│ news.yandex.ru │   64515 │
│ ██████.net     │   59141 │
│ example.com    │   57316 │
└────────────────┴─────────┘

formatReadableSize (x)

Boyutu (bayt sayısı) kabul eder. Bir sonek (KiB, MıB, vb.) ile yuvarlak bir boyut döndürür.) bir dize olarak.

Örnek:

SELECT
    arrayJoin([1, 1024, 1024*1024, 192851925]) AS filesize_bytes,
    formatReadableSize(filesize_bytes) AS filesize
┌─filesize_bytes─┬─filesize───┐
│              1 │ 1.00 B     │
│           1024 │ 1.00 KiB   │
│        1048576 │ 1.00 MiB   │
│      192851925 │ 183.92 MiB │
└────────────────┴────────────┘

en az (a, b)

A ve B'den en küçük değeri döndürür.

en büyük (a, b)

A ve B'nin en büyük değerini döndürür.

çalışma süresi()

Sunucunun çalışma süresini saniyeler içinde döndürür.

sürüm()

Sunucu sürümünü bir dize olarak döndürür.

saat dilimi()

Sunucunun saat dilimini döndürür.

blockNumber

Satırın bulunduğu veri bloğunun sıra numarasını döndürür.

rowNumberİnBlock

Veri bloğundaki satırın sıra numarasını döndürür. Farklı veri blokları her zaman yeniden hesaplanır.

rownumberınallblocks()

Veri bloğundaki satırın sıra numarasını döndürür. Bu işlev yalnızca etkilenen veri bloklarını dikkate alır.

komşuluk

Belirli bir sütunun geçerli satırından önce veya sonra gelen belirli bir ofsette bir satıra erişim sağlayan pencere işlevi.

Sözdizimi

neighbor(column, offset[, default_value])

İşlevin sonucu, etkilenen veri bloklarına ve bloktaki veri sırasına bağlıdır. ORDER BY ile bir alt sorgu yaparsanız ve alt sorgunun dışından işlevi çağırırsanız, beklenen sonucu alabilirsiniz.

Parametre

  • column — A column name or scalar expression.
  • offset — The number of rows forwards or backwards from the current row of column. Int64.
  • default_value — Optional. The value to be returned if offset goes beyond the scope of the block. Type of data blocks affected.

Döndürülen değerler

  • İçin değer column içinde offset eğer geçerli satırdan uzaklık offset değer blok sınırları dışında değil.
  • İçin varsayılan değer column eğer offset değer, blok sınırlarının dışındadır. Eğer default_value verilir, daha sonra kullanılacaktır.

Tür: etkilenen veri bloklarının türü veya varsayılan değer türü.

Örnek

Sorgu:

SELECT number, neighbor(number, 2) FROM system.numbers LIMIT 10;

Sonuç:

┌─number─┬─neighbor(number, 2)─┐
│      0 │                   2 │
│      1 │                   3 │
│      2 │                   4 │
│      3 │                   5 │
│      4 │                   6 │
│      5 │                   7 │
│      6 │                   8 │
│      7 │                   9 │
│      8 │                   0 │
│      9 │                   0 │
└────────┴─────────────────────┘

Sorgu:

SELECT number, neighbor(number, 2, 999) FROM system.numbers LIMIT 10;

Sonuç:

┌─number─┬─neighbor(number, 2, 999)─┐
│      0 │                        2 │
│      1 │                        3 │
│      2 │                        4 │
│      3 │                        5 │
│      4 │                        6 │
│      5 │                        7 │
│      6 │                        8 │
│      7 │                        9 │
│      8 │                      999 │
│      9 │                      999 │
└────────┴──────────────────────────┘

Bu işlev, yıldan yıla metrik değeri hesaplamak için kullanılabilir:

Sorgu:

WITH toDate('2018-01-01') AS start_date
SELECT
    toStartOfMonth(start_date + (number * 32)) AS month,
    toInt32(month) % 100 AS money,
    neighbor(money, -12) AS prev_year,
    round(prev_year / money, 2) AS year_over_year
FROM numbers(16)

Sonuç:

┌──────month─┬─money─┬─prev_year─┬─year_over_year─┐
│ 2018-01-01 │    32 │         0 │              0 │
│ 2018-02-01 │    63 │         0 │              0 │
│ 2018-03-01 │    91 │         0 │              0 │
│ 2018-04-01 │    22 │         0 │              0 │
│ 2018-05-01 │    52 │         0 │              0 │
│ 2018-06-01 │    83 │         0 │              0 │
│ 2018-07-01 │    13 │         0 │              0 │
│ 2018-08-01 │    44 │         0 │              0 │
│ 2018-09-01 │    75 │         0 │              0 │
│ 2018-10-01 │     5 │         0 │              0 │
│ 2018-11-01 │    36 │         0 │              0 │
│ 2018-12-01 │    66 │         0 │              0 │
│ 2019-01-01 │    97 │        32 │           0.33 │
│ 2019-02-01 │    28 │        63 │           2.25 │
│ 2019-03-01 │    56 │        91 │           1.62 │
│ 2019-04-01 │    87 │        22 │           0.25 │
└────────────┴───────┴───────────┴────────────────┘

runningDifference (x)

Calculates the difference between successive row values in the data block. İlk satır için 0 ve sonraki her satır için önceki satırdan farkı döndürür.

İşlevin sonucu, etkilenen veri bloklarına ve bloktaki veri sırasına bağlıdır. ORDER BY ile bir alt sorgu yaparsanız ve alt sorgunun dışından işlevi çağırırsanız, beklenen sonucu alabilirsiniz.

Örnek:

SELECT
    EventID,
    EventTime,
    runningDifference(EventTime) AS delta
FROM
(
    SELECT
        EventID,
        EventTime
    FROM events
    WHERE EventDate = '2016-11-24'
    ORDER BY EventTime ASC
    LIMIT 5
)
┌─EventID─┬───────────EventTime─┬─delta─┐
│    1106 │ 2016-11-24 00:00:04 │     0 │
│    1107 │ 2016-11-24 00:00:05 │     1 │
│    1108 │ 2016-11-24 00:00:05 │     0 │
│    1109 │ 2016-11-24 00:00:09 │     4 │
│    1110 │ 2016-11-24 00:00:10 │     1 │
└─────────┴─────────────────────┴───────┘

Lütfen dikkat - blok boyutu sonucu etkiler. Her yeni blok ile, runningDifference durum sıfırlandı.

SELECT
    number,
    runningDifference(number + 1) AS diff
FROM numbers(100000)
WHERE diff != 1
┌─number─┬─diff─┐
│      0 │    0 │
└────────┴──────┘
┌─number─┬─diff─┐
│  65536 │    0 │
└────────┴──────┘
set max_block_size=100000 -- default value is 65536!

SELECT
    number,
    runningDifference(number + 1) AS diff
FROM numbers(100000)
WHERE diff != 1
┌─number─┬─diff─┐
│      0 │    0 │
└────────┴──────┘

runningDifferenceStartingWithFirstvalue

İçin aynı runningDifference, fark ilk satırın değeridir, ilk satırın değerini döndürdü ve sonraki her satır önceki satırdan farkı döndürür.

MACNumToString (num)

Bir uınt64 numarasını kabul eder. Big endian'da bir MAC adresi olarak yorumlar. AA:BB:CC:DD:EE:FF biçiminde karşılık gelen MAC adresini içeren bir dize döndürür (onaltılık formda iki nokta üst üste ayrılmış sayılar).

MACStringToNum (s)

MACNumToString ters işlevi. MAC adresi geçersiz bir biçime sahipse, 0 döndürür.

MACStringToOUİ (s)

AA:BB:CC:DD:EE:FF (onaltılık formda iki nokta üst üste ayrılmış sayılar) biçiminde bir MAC adresi kabul eder. İlk üç sekizli uint64 numarası olarak döndürür. MAC adresi geçersiz bir biçime sahipse, 0 döndürür.

getSizeOfEnumType

Alan sayısını döndürür Enum.

getSizeOfEnumType(value)

Parametre:

  • value — Value of type Enum.

Döndürülen değerler

  • İle alan sayısı Enum giriş değerleri.
  • Tür değilse bir istisna atılır Enum.

Örnek

SELECT getSizeOfEnumType( CAST('a' AS Enum8('a' = 1, 'b' = 2) ) ) AS x
┌─x─┐
│ 2 │
└───┘

blockSerializedSize

Diskteki boyutu döndürür (sıkıştırmayı hesaba katmadan).

blockSerializedSize(value[, value[, ...]])

Parametre:

  • value — Any value.

Döndürülen değerler

  • (Sıkıştırma olmadan) değerler bloğu için diske yazılacak bayt sayısı.

Örnek

SELECT blockSerializedSize(maxState(1)) as x
┌─x─┐
│ 2 │
└───┘

toColumnTypeName

RAM'DEKİ sütunun veri türünü temsil eden sınıfın adını döndürür.

toColumnTypeName(value)

Parametre:

  • value — Any type of value.

Döndürülen değerler

  • Temsil etmek için kullanılan sınıfın adını içeren bir dize value RAM veri türü.

Arasındaki fark örneğitoTypeName ' and ' toColumnTypeName

SELECT toTypeName(CAST('2018-01-01 01:02:03' AS DateTime))
┌─toTypeName(CAST('2018-01-01 01:02:03', 'DateTime'))─┐
│ DateTime                                            │
└─────────────────────────────────────────────────────┘
SELECT toColumnTypeName(CAST('2018-01-01 01:02:03' AS DateTime))
┌─toColumnTypeName(CAST('2018-01-01 01:02:03', 'DateTime'))─┐
│ Const(UInt32)                                             │
└───────────────────────────────────────────────────────────┘

Örnek gösteriyor ki DateTime veri türü olarak bellekte saklanır Const(UInt32).

dumpColumnStructure

Ram'deki veri yapılarının ayrıntılı bir açıklamasını verir

dumpColumnStructure(value)

Parametre:

  • value — Any type of value.

Döndürülen değerler

  • Temsil etmek için kullanılan yapıyııklayan bir dize value RAM veri türü.

Örnek

SELECT dumpColumnStructure(CAST('2018-01-01 01:02:03', 'DateTime'))
┌─dumpColumnStructure(CAST('2018-01-01 01:02:03', 'DateTime'))─┐
│ DateTime, Const(size = 1, UInt32(size = 1))                  │
└──────────────────────────────────────────────────────────────┘

defaultValueOfArgumentType

Veri türü için varsayılan değeri verir.

Kullanıcı tarafından ayarlanan özel sütunlar için varsayılan değerleri içermez.

defaultValueOfArgumentType(expression)

Parametre:

  • expression — Arbitrary type of value or an expression that results in a value of an arbitrary type.

Döndürülen değerler

  • 0 sayılar için.
  • Dizeler için boş dize.
  • ᴺᵁᴸᴸ için Nullable.

Örnek

SELECT defaultValueOfArgumentType( CAST(1 AS Int8) )
┌─defaultValueOfArgumentType(CAST(1, 'Int8'))─┐
│                                           0 │
└─────────────────────────────────────────────┘
SELECT defaultValueOfArgumentType( CAST(1 AS Nullable(Int8) ) )
┌─defaultValueOfArgumentType(CAST(1, 'Nullable(Int8)'))─┐
│                                                  ᴺᵁᴸᴸ │
└───────────────────────────────────────────────────────┘

çoğaltmak

Tek bir değere sahip bir dizi oluşturur.

İç uygulama için kullanılan arrayJoin.

SELECT replicate(x, arr);

Parametre:

  • arr — Original array. ClickHouse creates a new array of the same length as the original and fills it with the value x.
  • x — The value that the resulting array will be filled with.

Döndürülen değer

Değerle dolu bir dizi x.

Tür: Array.

Örnek

Sorgu:

SELECT replicate(1, ['a', 'b', 'c'])

Sonuç:

┌─replicate(1, ['a', 'b', 'c'])─┐
│ [1,1,1]                       │
└───────────────────────────────┘

filesystemAvailable

Veritabanlarının dosyalarının bulunduğu dosya sisteminde kalan alan miktarını döndürür. Her zaman toplam boş alandan daha küçüktür (filesystemFree) çünkü OS için biraz alan ayrılmıştır.

Sözdizimi

filesystemAvailable()

Döndürülen değer

  • Bayt olarak kullanılabilir kalan alan miktarı.

Tür: Uİnt64.

Örnek

Sorgu:

SELECT formatReadableSize(filesystemAvailable()) AS "Available space", toTypeName(filesystemAvailable()) AS "Type";

Sonuç:

┌─Available space─┬─Type───┐
│ 30.75 GiB       │ UInt64 │
└─────────────────┴────────┘

filesystemFree

Veritabanlarının dosyalarının bulunduğu dosya sistemindeki boş alanın toplam miktarını döndürür. Ayrıca bakınız filesystemAvailable

Sözdizimi

filesystemFree()

Döndürülen değer

  • Bayt cinsinden boş alan miktarı.

Tür: Uİnt64.

Örnek

Sorgu:

SELECT formatReadableSize(filesystemFree()) AS "Free space", toTypeName(filesystemFree()) AS "Type";

Sonuç:

┌─Free space─┬─Type───┐
│ 32.39 GiB  │ UInt64 │
└────────────┴────────┘

filesystemCapacity

Dosya sisteminin kapasitesini bayt cinsinden döndürür. Değerlendirme için, yol veri dizinine yapılandırılmalıdır.

Sözdizimi

filesystemCapacity()

Döndürülen değer

  • Dosya sisteminin bayt cinsinden kapasite bilgisi.

Tür: Uİnt64.

Örnek

Sorgu:

SELECT formatReadableSize(filesystemCapacity()) AS "Capacity", toTypeName(filesystemCapacity()) AS "Type"

Sonuç:

┌─Capacity──┬─Type───┐
│ 39.32 GiB │ UInt64 │
└───────────┴────────┘

finalizeAggregation

Toplama işlevinin durumunu alır. Toplama sonucunu döndürür (kesinleşmiş durum).

runningAccumulate

Toplama işlevinin durumlarını alır ve değerleri olan bir sütun döndürür, bu durumların bir dizi blok satırı için ilk satırdan geçerli satıra birikmesinin sonucudur. Örneğin, toplama işlevinin durumunu alır (örnek runningAccumulate (uniqState (Userıd))) ve her blok satırı için, önceki tüm Satırların ve geçerli satırın durumlarının birleştirilmesinde toplama işlevinin sonucunu döndürür. Bu nedenle, işlevin sonucu, verilerin bloklara bölünmesine ve blok içindeki verilerin sırasına bağlıdır.

joinGet

İşlev, tablodan verileri bir tablodan aynı şekilde ayıklamanızı sağlar sözlük.

Veri alır Katmak belirtilen birleştirme anahtarını kullanarak tablolar.

Sadece ile oluşturulan tabloları destekler ENGINE = Join(ANY, LEFT, <join_keys>) deyim.

Sözdizimi

joinGet(join_storage_table_name, `value_column`, join_keys)

Parametre

  • join_storage_table_name — an tanıtıcı aramanın nerede yapıldığını gösterir. Tanımlayıcı varsayılan veritabanında aranır (bkz. parametre default_database config dosyası). Varsayılan veritabanını geçersiz kılmak için USE db_name veya ayırıcı aracılığıyla veritabanını ve tabloyu belirtin db_name.db_table örnek bakın.
  • value_column — name of the column of the table that contains required data.
  • join_keys — list of keys.

Döndürülen değer

Anahtarların listesine karşılık gelen değerlerin listesini döndürür.

Kaynak tabloda kesin yoksa o zaman 0 veya null esas alınarak iade edilecektir join_use_nulls ayar.

Hakkında daha fazla bilgi join_use_nulls içinde Birleştirme işlemi.

Örnek

Giriş tablosu:

CREATE DATABASE db_test
CREATE TABLE db_test.id_val(`id` UInt32, `val` UInt32) ENGINE = Join(ANY, LEFT, id) SETTINGS join_use_nulls = 1
INSERT INTO db_test.id_val VALUES (1,11)(2,12)(4,13)
┌─id─┬─val─┐
│  4 │  13 │
│  2 │  12 │
│  1 │  11 │
└────┴─────┘

Sorgu:

SELECT joinGet(db_test.id_val,'val',toUInt32(number)) from numbers(4) SETTINGS join_use_nulls = 1

Sonuç:

┌─joinGet(db_test.id_val, 'val', toUInt32(number))─┐
│                                                0 │
│                                               11 │
│                                               12 │
│                                                0 │
└──────────────────────────────────────────────────┘

modelEvaluate(model_name, …)

Dış modeli değerlendirin. Bir model adı ve model bağımsız değişkenleri kabul eder. Float64 Döndürür.

throwİf(x [, custom_message])

Argüman sıfır değilse bir istisna atın. custom_message-isteğe bağlı bir parametredir: sabit bir dize, bir hata mesajı sağlar

SELECT throwIf(number = 3, 'Too many') FROM numbers(10);
↙ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.) Received exception from server (version 19.14.1):
Code: 395. DB::Exception: Received from localhost:9000. DB::Exception: Too many.

kimlik

Bağımsız değişkeni olarak kullanılan aynı değeri döndürür. Hata ayıklama ve test için kullanılan, dizin kullanarak iptal ve tam bir tarama sorgu performansını almak için izin verir. Olası dizin kullanımı için sorgu analiz edildiğinde, analizör içeriye bakmaz identity işlevler.

Sözdizimi

identity(x)

Örnek

Sorgu:

SELECT identity(42)

Sonuç:

┌─identity(42)─┐
│           42 │
└──────────────┘

randomPrintableASCİİ

Rastgele bir dizi ile bir dize oluşturur ASCII yazdırılabilir karakterler.

Sözdizimi

randomPrintableASCII(length)

Parametre

  • length — Resulting string length. Positive integer.

    If you pass `length < 0`, behavior of the function is undefined.
    

Döndürülen değer

  • Rastgele bir dizi dize ASCII yazdırılabilir karakterler.

Tür: Dize

Örnek

SELECT number, randomPrintableASCII(30) as str, length(str) FROM system.numbers LIMIT 3
┌─number─┬─str────────────────────────────┬─length(randomPrintableASCII(30))─┐
│      0 │ SuiCOSTvC0csfABSw=UcSzp2.`rv8x │                               30 │
│      1 │ 1Ag NlJ &RCN:*>HVPG;PE-nO"SUFD │                               30 │
│      2 │ /"+<"wUTh:=LjJ Vm!c&hI*m#XTfzz │                               30 │
└────────┴────────────────────────────────┴──────────────────────────────────┘

Orijinal makale