ClickHouseで利用可能なデータ型の確認方法と主要な型の解説
ClickHouseでサポートされるデータ型を調べるには、公式ドキュメントまたはシステムテーブルを参照するのが効率的です。
データ型の一覧取得方法
以下のクエリで、現在のインスタンスが認識するすべてのデータ型ファミリーを取得できます:
SELECT name, alias_to
FROM system.data_type_families
WHERE case_insensitive = 1
ORDER BY name;
この結果には、INET4 → IPv4 ...
6月6日 22:47 投稿
MyBatisの自己結合による多対一クエリ方法
現在、データベースのクエリ要件として、特定のニュースカテゴリのIDを与え、その親カテゴリ、親の親カテゴリといった情報を再帰的に取得する必要があります。
データベースのテーブル設計は以下の通りです。
エンティティクラスの設計:
package model;
public class Category {
private Integer id;
private String name;
private Category parent;
public Inte ...
6月5日 23:48 投稿
パーティションテーブル作成の実装について
SQL
CREATE TABLE measurement (
city_id int not null,
logdate date not null,
data text
) PARTITION BY RANGE (logdate);
CREATE TABLE p1 PARTITION OF measurement
FOR VALUES FROM ('2020-01-01') TO ('2020-02-01');
構文解析構造
CreateStmt *node = makeNode(CreateStmt);
node->relation = $4; /* ここでは `p1` */
node-& ...
6月4日 22:14 投稿
SQL実践:動画カテゴリ別の平均再生進捗率を算出する方法
SQL実践:動画カテゴリ別の平均再生進捗率を算出する方法
動画プラットフォームのデータ分析において、ユーザーのエンゲージメントを測る重要な指標の一つに「再生進捗率」があります。本記事では、カテゴリ別の平均再生進捗率を算出し、特定の閾値を超えるカテゴリを抽出するSQLクエリの構築方法を解説します。
データ構造の理解
分析対象となるテーブルは以下の2つです。 ...
6月3日 17:32 投稿
ClickHouseの基本構文と操作ガイド
環境概要
三台のCentOS7サーバーにClickHouseがインストールされています。
ホスト名IPアドレスインストール済みソフトウェアポート番号centf8118.sharding1.db192.168.81.18clickhouse-server, clickhouse-client9000centf8119.sharding2.db192.168.81.19clickhouse-server, clickhouse-client9000centf8120.sharding3.db192.168.81.20clickhouse-server, clickhouse-cli ...
6月1日 18:59 投稿
VXシステムにおける材料データ不備の解決方法
1. ワークオーダー番号に基づく関連レコードの照会
SELECT A.WO, A.DEVICE, B.*
FROM MES_WPC_WO A
LEFT JOIN AOI_WO_BOM B ON A.WPC_WO_SID = B.WPC_WO_SID
WHERE wo = '420000281'
-- WHERE device = '341701000747' -- デバイス番号で検索する場合
2. VXグループで提供されたWOと材料IDに基づくデータ追加(データベース: 133)
INSERT INTO AOI_WO_BOM (WO_BOM_S ...
6月1日 11:28 投稿
MySQLにおけるウィンドウ関数の活用方法
ウィンドウ関数の基本
ウィンドウ関数とは
ウィンドウ関数(OLAP関数とも呼ばれる)はデータ分析処理を行うための機能で、以下の基本構文を持ちます:
<ウィンドウ関数> OVER (PARTITION BY <グループ化列> ORDER BY <ソート列>)
ウィンドウ関数として使用できるのは:
専用ウィンドウ関数(RANK, DENSE_RANK, ROW_NUMBERなど)
集計関数(SUM ...
5月31日 06:39 投稿
MySQL 多表結合クエリの基本
MySQL 多表結合クエリの基本
データ準備
#テーブル作成
CREATE TABLE division(
id INT,
name VARCHAR(20)
);
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
gender ENUM('male','female') NOT NULL DEFAULT 'male',
age INT,
div_id INT
);
#データ挿入
INSERT INTO division VALUES
(100,'開発部'),
(101,'マーケティ ...
5月30日 16:54 投稿
JDBCの基礎知識
JDBCの概要
JDBC(Java Database Connectivity)は、Javaアプリケーションが様々なデータベースと統一的な方法で通信するためのAPI(アプリケーション・プログラミング・インターフェース)です。JDBCを利用することで、データベースの種類に依存せず、標準的なインターフェースでデータの検索、挿入、更新、削除といった操作を実行できます。
JDBCの主なコンポーネント
J ...
5月30日 01:43 投稿
MyBatisにおけるページング処理の実装方法
大量データを検索する際には、データベースへの負荷を制御するためにページング機能を使用します。MyBatisでページングを実現する主な方法には、Limitによるページング、RowBoundsによるページング、およびPageHelperによるページングがあります。
1. Limitによるページング(SQLレベルでの実装)
MySQLのLIMIT句を使用したページング構文:
// LIMITページング構文
SEL ...
5月29日 16:02 投稿