sql >> データベース >  >> RDS >> Mysql

1つのmySQLクエリを使用してすべての結果の数値箱ひげ図データを返すにはどうすればよいですか?

    PL/Pythonを使用してPostgreSQLで解決策を見つけました。

    ただし、他の誰かがmySQLで解決策を思いついた場合に備えて、質問は開いたままにしておきます。

    CREATE TYPE boxplot_values AS (
      min       numeric,
      q1        numeric,
      median    numeric,
      q3        numeric,
      max       numeric
    );
    
    CREATE OR REPLACE FUNCTION _final_boxplot(strarr numeric[])
       RETURNS boxplot_values AS
    $$
        x = strarr.replace("{","[").replace("}","]")
        a = eval(str(x))
    
        a.sort()
        i = len(a)
        return ( a[0], a[i/4], a[i/2], a[i*3/4], a[-1] )
    $$
    LANGUAGE 'plpythonu' IMMUTABLE;
    
    CREATE AGGREGATE boxplot(numeric) (
      SFUNC=array_append,
      STYPE=numeric[],
      FINALFUNC=_final_boxplot,
      INITCOND='{}'
    );
    

    例:

    SELECT customer_id as cid, (boxplot(price)).*
    FROM orders
    GROUP BY customer_id;
    
       cid |   min   |   q1    | median  |   q3    |   max
    -------+---------+---------+---------+---------+---------
      1001 | 7.40209 | 7.80031 |  7.9551 | 7.99059 | 7.99903
      1002 | 3.44229 | 4.38172 | 4.72498 | 5.25214 | 5.98736
    

    出典: http://www.christian-rossow.de/articles/PostgreSQL_boxplot_median_quartiles_aggregate_function.php



    1. Play Framework 2.0で本番環境とテストの両方でタイムゾーンをUTCに設定するにはどうすればよいですか?

    2. ONDUPLICATEKEYに相当するSQLServer2000?

    3. ジャンプしてテスト駆動データベース開発(TDDD)を開始

    4. mysqlルートパスワードレスト