ユーザー定義関数内で数値変数を文字列に呼び出し/変換しようとしています。を使おうと思ってto_char
いたのですが、だめでした。
私の機能は次のようなものです:
create or replace function ntile_loop(x numeric)
returns setof numeric as
$$
select
max("billed") as _____(to_char($1,'99')||"%"???) from
(select "billed", "id","cm",ntile(100)
over (partition by "id","cm" order by "billed")
as "percentile" from "table_all") where "percentile"=$1
group by "id","cm","percentile";
$$
language sql;
私の目的は、新しい変数「x%」をその名前として定義し、x を関数入力として変化させることです。コンテキストでは、x は数値であり、後で関数内で数値として再度呼び出されます (コードのこの部分は上記のサンプルには含まれていません)。
返品したいもの:
パーセンタイル数を変更するたびに、このコード ブロックを何度も実行する必要がないように、単純にコード ブロックを返したいだけです。5、10、20、30、....90 パーセンタイルを計算し、id+cm グループごとに同じテーブルにすべて表示したいと思います。
そんなわけで、マクロや関数を考えていたのですが、気に入った解決策が見つかりませんでした。
回答ありがとうございます。はい、学習中に必ず基礎を読みます。今日で SQL を使用するのは 2 日目ですが、すぐに結果を生成する必要があります。