2011-11-16 3 views
0

:別のモードでカラムのモーダル値を取得するためのMySQLユーザ定義関数?たとえば

SELECT MODE(field) FROM table 

、何ユーザー定義関数は、私は列の最も一般的な値を取得するために使用することができますか?

私はのような何かを行うことができます知っている:

SELECT field, COUNT(*) as total FROM table GROUP BY field ORDER BY total DESC LIMIT 1 

しかし、私は、あまりにも同じMySQL文で他のデータを照会する必要があるので、私は、ユーザー定義関数を使用する必要があります。

ありがとうございます。

+0

を、あなたが取得しようとしている他のどのようなデータ?私はここで複数のクエリを発行する必要があると思います – ManseUK

答えて

0

ここにMySQL's documentation on aggregate functionsへのリンクがあります。彼らは "モード"のための何も持っていないように見えるので、私はあなたの2番目のクエリはおそらくあなたの最高のショットだと言うでしょう。

0

MySQLは、ユーザ定義の集計関数(PostgreSQL does、それは価値があります)をサポートしていません。 MySQLで必要なことをするためにUDFを使用することはできません。

あなたは、派生テーブルのサブクエリでモード計算を置くことによって、例えばそれを行うことができます。

SELECT t.* 
FROM (SELECT field AS mode, COUNT(*) as total FROM table 
     GROUP BY field ORDER BY total DESC LIMIT 1) AS m 
JOIN table t ON m.mode = t.field; 
関連する問題