tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル中央値を取得したい
記事No16562
投稿日: 2020/04/23(Thu) 20:41
投稿者悩めるEXCELマクロ士
いつもお世話になっています。
早速ですが質問です。
現在、当方ではEXCELVBAを使ってSQLサーバからデータを取り込んで
表示するアプリを作成しているんですが、SQLでの集計がうまくいかず
悩んでいます。
データベースには、
ID  値
111 100
222 200
333 300
というデータがあったとしてここからSQLで中央値を取得したいのですが
うまくいきません。
MAXやMIN、AVGは関数もありうまくいったのですが
中央値を取得する『MEDIAN』を使っても
『未定義の集計関数です』となってエラーになります。
どのようにしたら中央値が取れるのかご教授いただけると幸いです。
予想ですが、EXCELVBAのSQLでは『MEDIAN』関数は使用できないのでとも思っております。
よろしくお願いします。

[ツリー表示へ]
タイトルRe: 中央値を取得したい
記事No16563
投稿日: 2020/04/24(Fri) 00:48
投稿者魔界の仮面弁士
どのバージョンの SQL Server に対して、どのような SQL 文を投げているのか分かりませんが、下記は参考になりますでしょうか?
https://www.it-swarm.dev/ja/sql/sql-server%E3%81%A7%E4%B8%AD%E5%A4%AE%E5%80%A4%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E6%A9%9F%E8%83%BD/967046970/amp/

[ツリー表示へ]
タイトルRe^2: 中央値を取得したい
記事No16564
投稿日: 2020/04/26(Sun) 21:08
投稿者悩めるEXCELマクロ士
魔界の仮面弁士 さま

返信が遅くなってしまって、すいません。
そうですね、こちらの環境を書かずに質問を投稿して
しまいました。
こちらの環境としては、
サーバーバージョン:MS SQLServer2017
クライアントOS:Win10
投げてるSQL(あまり詳しく書けませんが)

Select MAX(フィールド名),MIN(フィールド名) From テーブル名

これで、最大値、最小値、平均値は取得することができました。
このSQLで『MEDIAN(フィールド名)』としてSQLを発行したんですが
『未定義の集計関数です』となってエラーになります。

一応、他のサイトで調べると『MEDIAN(フィールド名)』という関数は
あるようなのですが、SQLServerで使用できるかどうかは定かではないです。
(そのサイトも、オラクルかなんかの解説サイトだったと思います。)

> どのバージョンの SQL Server に対して、どのような SQL 文を投げているのか分かりませんが、下記は参考になりますでしょうか?
> https://www.it-swarm.dev/ja/sql/sql-server%E3%81%A7%E4%B8%AD%E5%A4%AE%E5%80%A4%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E6%A9%9F%E8%83%BD/967046970/amp/

お教えいただいた、リンク先を見させていただきましたが
少し複雑なSQLになってしまうので実装は難しいかもしれません。
MAXやMINのように関数で取得できるのが希望でしたので。
なので、方々サイトをめぐり下記サイト発見したのでこちらの方法を
ベースに改修していこうと思います。
>hhttps://vbabeginner.net/vba

いろいろとご教授いただきありがとうございました。

[ツリー表示へ]