すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:概要

最終更新日:Dec 28, 2024

このトピックでは、ユーザー定義集計関数 (UDAF) について説明します。

UDAF

  • SUM: 中間値を集計し、値の合計を返します。

  • AVG: 中間値を集計し、値の平均を返します。

  • MAX: 中間値を集計し、最大値を返します。

  • MIN: 中間値を集計し、最小値を返します。

  • COUNT: 中間値を集計し、エントリ数を返します。

  • MAXLABEL: 中間値を集計し、指定されたラベルの最大値を返します。

テストデータ

このトピックのサンプルクエリは、テスト環境のphoneテーブルで実行されます。phoneテーブルには、特定の人気ブランドの携帯電話に関する情報が格納されています。次の表は、phoneテーブルに格納されているデータを示しています。

nid

タイトル

価格

ブランド

サイズ

1

Huawei Mate 9 Kirin 960 Chip Leica Dual Lens

3599

Huawei

5.9

Red

2

Huawei P10 Plus Unlocked Mobile Phone

4388

Huawei

5.5

Blue

3

Xiaomi Redmi Mobile Phone 4X 32 GB Unlocked 4G Smartphone

899

Xiaomi

5.0

Black

4

OPPO R11 Unlocked 20 Megapixel Front and Rear Cameras Fingerprint Identification Camera Phone r11r9s

2999

OPPO

5.5

Red

5

MEIZU Meilan E2 Unlocked Front Fingerprint Fast Charging 4G Smartphone

1299

Meizu

5.5

Silvery white

6

Nokia 105 Mobile Loud Phone for Seniors Straight Button Students Old People Small Mobile Phone Super Long Standby

169

Nokia

1.4

Blue

7

Apple iPhone 6s 32 GB Unbroken Seal Genuine Spot Goods Quick Delivery

3599

Apple

4.7

Silvery white

8

Apple iPhone 7 Plus 128 GB Unlocked 4G Mobile Phone

5998

Apple

5.5

Bright black

9

Apple iPhone 7 32 GB Unlocked 4G Smartphone

4298

Apple

4.7

Black

10

Samsung GALAXY S8 SM-G9500 Unlocked 4G Mobile Phone

5688

Samsung

5.6

Fog blue

サンプルクエリ

● phoneテーブルの全データをクエリする

SELECT * FROM phone ORDER BY nid LIMIT 1000 
USE_TIME: 0.036, ROW_COUNT: 10

------------------------------- TABLE INFO ---------------------------
                 nid |               title |               price |               brand |                size |               color |
                   1 |                null |                3599 |              Huawei |                 5.9 |                null |
                   2 |                null |                4388 |              Huawei |                 5.5 |                null |
                   3 |                null |                 899 |              Xiaomi |                   5 |                null |
                   4 |                null |                2999 |                OPPO |                 5.5 |                null |
                   5 |                null |                1299 |               Meizu |                 5.5 |                null |
                   6 |                null |                 169 |               Nokia |                 1.4 |                null |
                   7 |                null |                3599 |               Apple |                 4.7 |                null |
                   8 |                null |                5998 |               Apple |                 5.5 |                null |
                   9 |                null |                4298 |               Apple |                 4.7 |                null |
                  10 |                null |                5688 |             Samsung |                 5.6 |                null |

: titleフィールドとcolorフィールドは概要に含まれているため、システムはクエリ結果でこれらのフィールドの値としてnullを返します。

  • sum関数を使用して、各ブランドの商品価格の合計を計算する

SELECT brand, sum(price) FROM phone GROUP BY (brand) ORDER BY brand LIMIT 1000
USE_TIME: 0.152, ROW_COUNT: 7

------------------------------- TABLE INFO ---------------------------
               brand |          SUM(price) |
               Apple |               13895 |
              Huawei |                7987 |
               Meizu |                1299 |
               Nokia |                 169 |
                OPPO |                2999 |
             Samsung |                5688 |
              Xiaomi |                 899 |

  • MAX関数を使用して、各ブランドの携帯電話の最高価格を取得し、価格を降順にランク付けする

SELECT brand, max(price) AS price FROM phone GROUP BY (brand) ORDER BY price DESC LIMIT 1000

USE_TIME: 0.053, ROW_COUNT: 7

------------------------------- TABLE INFO ---------------------------
               brand |               price |
               Apple |                5998 |
             Samsung |                5688 |
              Huawei |                4388 |
                OPPO |                2999 |
               Meizu |                1299 |
              Xiaomi |                 899 |
               Nokia |                 169 |

  • MAXLABEL関数を使用して、各ブランドの最も高価な携帯電話の画面サイズを取得する

SELECT brand, MAXLABEL(size, price) AS size FROM phone GROUP BY brand