DISTINCT
mysqlは独自の集計関数を使用してキーワードをどのように実装しますか? 同じように UDF で使用できますか?
SELECT MY_UDF(DISTINCT value) FROM table
その場合、MySQL は行のグループを UDF に渡す前に DISTINCT を適用しますか? それとも UDF 自体がそれを処理する必要がありますか? 複数の引数を取る UDF はどうなるでしょうか? 入力のタプル全体を区別しますか?
DISTINCT
mysqlは独自の集計関数を使用してキーワードをどのように実装しますか? 同じように UDF で使用できますか?
SELECT MY_UDF(DISTINCT value) FROM table
その場合、MySQL は行のグループを UDF に渡す前に DISTINCT を適用しますか? それとも UDF 自体がそれを処理する必要がありますか? 複数の引数を取る UDF はどうなるでしょうか? 入力のタプル全体を区別しますか?
はい、次のステートメントで使用されるのと同じ方法で UDF で使用できます。
CREATE TABLE sample_1 (
`id` int(11) NOT NULL AUTO_INCREMENT,
`col_val` int(11) ,
PRIMARY KEY (`id`)
);
INSERT INTO sample_1(col_val) values (1),(1), (2),(3) ;
SELECT * FROM sample_1;
SELECT DISTINCT COL_VAL FROM sample_1;
SELECT SUM(DISTINCT COL_VAL) FROM sample_1;
試してみましたが、MySQL では、UDF 呼び出しに DISTINCT キーワードを含めると構文エラーになります。だから無理だと思います。