文字 Font の 色を指定する

文字 Font の 色を指定する

文字Fontの色を指定する

文字 Font の色を指定する時は、「color」プロパティを指定します。

color: #ff0000;

色の指定は、bodyに対して行い文書全体に指定もできますし、個別に指定することも出来ます。

文字 Font の色を指定する例

例をいくつか載せておきます。

bodyに対して行い文書全体に指定

全体に赤の文字色を指定します。

<html>
<head>
<style>
body {
    color: #ff0000;
}
</style>
</head>
<body>
これはFontの色指定のテストです。(赤指定)
</body>
</html>

h1タグの文字色をこげ茶色に指定

こげ茶の色を#662323にしました。
色は「原色大辞典」さんで調べると、指定する色値を簡単に取得できます。

<html>
<head>
<style>
body {
    color: #ff0000;
}
h1 {
    color: #662323;
}
</style>
</head>
<body>
<h1>h1タグの色はこげ茶</h1>
これはFontの色指定のテストです。(赤指定)
</body>
</html>

Class指定で文字色を青に指定

pタグにClass blue を指定し、blueクラスに青色を指定しています。

<html>
<head>
<style>
body {
    color: #ff0000;
}
h1 {
    color: #662323;
}
.blue {
    color: #0000ff;
}
</style>
</head>
<body>
<h1>h1タグの色はこげ茶</h1>
これはFontの色指定のテストです。(赤指定)
<p class='blue'>これはClassでFontの色指定のテストです。(青指定)</p>
</body>
</html>

以上、簡単な「文字 Font の 色を指定する」方法の紹介でした。

USBメモリ 表示より容量が少ない

USBメモリ 表示より容量が少ない

先日、下の32GBのUSBメモリをAmazonで購入しました。

Amazonの書き込みを見て、USBメモリへの書き込みスピードも速く良い感じの評価も多かったのでこのUSBメモリに決めました。

でも表示より容量が少ない!

で、PCに挿して容量を確認したところ、28.3GBしか有りません。。。



Excelで計算してみると、一般的な32GBのUSBメモリなら29.8GBになります。


それが、28.3GBしかないので480MBも少ないです。
ググってみると、少ないメモリ分はメーカーがなんやらユーザーの安全性や利便性のために確保しているそうです。

もともとの計算でさえ、1024を使わず1000で計算して、更に説明もなく5%も利用して、ちょっとがっかりです。

USBメモリを買う時は、見せかけのGBや表記の容量が使えないことも有るので注意しましょうね。

以上、「USBメモリ 表示より容量が少ない」でした。
The USB memory capacity is low

Windows 10 Windows SuperFetch

Windows 10 Windows SuperFetch

SuperFetchを検索すると 、あまり評判が良くないことが書かれています。
何が良くないかと言うと、「重い」・・・Windowsを重くしている原因の一つとみなされています。

PC立ち上げ直後の Superfetch は上の図のようにディスクアクセスを行ったりして Windows を重く感じさせます。

 

そもそも Windows SuperFetch とは?

そもそもWindows SuperFetch とはどんな機能なのでしょ?

端的に述べると、パフォーマンスの向上に関するディスクキャッシュおよびメインメモリの管理プログラムです。

ユーザーの操作パターンや各アプリケーションとウイルス検索などのバックグラウンドプロセスの挙動を記録し、その記録を分析することで予測を立て、予測に基づきデータ等の先読み込みを行うことでより効率的なメモリ管理を行うと言われています。
また、メモリが足りない時にスワップ操作をWindowsが行いますが、スワップアウトやスワップインを行う際に利用頻度による重み付け考慮し、頻度の高いプロセスをメモリに入れておくようにすることで、やはり効率的なメモリ管理を行っていると言われています。
その他、明示的なユーザー操作がされていなくてもユーザーのPCの利用実態に合わせて、アプリケーション等をすぐに実行できるようにあらかじめプリフェッチの計画を立て、現在使用されていないメモリ領域に対してプリフェッチ実行しメモリに読み込を行います。

これらの一連の動作に伴い、一定以上のCPUやメモリ、HDDなどのリソースを使用するために、一時期的にWindowsが重たくなることがあります。
Windows SuperFetchは必ず常駐させる必要もないことから、WindowsサービスのSuperFetch”のスタートアップの種類の設定を手動や無効にすることで利用しないようにもできます。

 

Windows SuperFetch は必要?

まずはメリット・デメリットですが。

メリット
・(高機能なPCにおいて)全体的なレスポンスの向上
・(高機能なPCにおいて)アプリケーションの起動速度の向上

デメリット
・(非力なPCにおいて)収集・分析・計画・実行にリソースを喰われるので重くなる
・(非力なPCにおいて)メモリ容量が十分でないがために結果として、効果が出ない場合がある
・OSの起動直後は、SuperFetchの先読み動作により、かえってアプリケーションの起動に時間が掛かる場合がある

 

上の他にもメリット・デメリットがあると思いますが、基本的に必要か不要かとなると不要な気がします。
ただ、高機能なPCにおいては、足かせになることも少ないと思いますので、メリットを享受できる分実行しておいても損はしないかと。

ちなみに、私のPCの場合は約90MBを利用して特に目立つことも無く粛々と活動しているようです。

 

Windows SuperFetch を止める方法

その時だけ停止させたい場合は、[タスクマネージャー]の[サービス]タブを開き、SysMainを探します。
その後、右クリックして[コンテキストメニュー]の[停止]を選択すれば停止できます。

 

次回起動から停止させたい場合は、上と同じく SysMain を右クリックして[コンテキストメニュー]の[サービス管理ツールを開く]を選択し、サービス管理ツールを開きます。

Superfetchを右クリックして[コンテキストメニュー]の[プロパティ]を選択し、プロパティ画面を開きます。

スタートアップの種類を「手動」もしくは「無効」に設定して、「OK」「適用」します。
以上の操作背で次回の起動からは Superfetch は稼働していません。

 

Windows SuperFetch のまとめ

PCを立ち上げ後しばらく待ってみて、タスクマネージャーで状態を確認しましょう。
Superfetch は基本的にしばらくすると大人しくなります。
むしろ Windwos Update の方がよほどWindowsを重くしています。
Windwos Update も行われておらず、それでもSuperfetch が単体でWindwosを重くしているようなら、利用を見合わせるようにしましょう。

以上、Windows 10 Windows SuperFetch についてでした。

Windows 10 起動が遅い

Windows 10 起動が遅い時の対処方法

最近、昔使っていたノートPCのメモリを増やして活用しています。
が、やはりとっても重くて。。。
一番の原因はWindows Update なのですが、これは仕方ないので重くても放置して、我慢しています。

起動時に重くなる原因はその他にもいくつかあるので、ここで原因とその対処法を紹介していきます。
Windows SuperFetch
・Microsoft compatibility telemetry

今のところ、2つが目立っているので、この2つから。

起動が遅い時・重い時の確認方法

ちなみに、起動が遅い時や立ち上げ直後はアプリが重いとか、そんな時は「タスクマネージャー」で重くなっている原因を確認しましょう。
タスクマネージャーの立ち上げ方はいくつかありますが、スタートボタンを右クリックすると下のようなメニューが表示されますので、その中からタスクマネージャーをクリックします。

タスクマネージャーを立ち上げると、下の画面にいなります。
[プロセス]タブでは、どのプロセスがCPU,メモリ,ディスク,ネットワークをどの程度使用しているのかがわかります。
中にはサービスホスト:ローカルシステム(x)のようにまとめて表示されるものあります(32bit版)が、[>]をクリックすると展開されて何が起動されているかだけわかります。


立ち上げ時やいつもと違って重いと感じたときは、タスクマネージャーでどんなプロセスが重たくしているかを確認しましょう。

タスクマネージャーの見方

 CPUやメモリ,ディスクが100%になっていると、PCの動作が緩慢になります。
上の図では、Google Chrome がメモリを475.3MB使っています。他のプロセスやアプリも合わせて全体の45%のメモリを使用しています。
これがメモリ100%に近いと、メモリのスワップという動作が起こり、ディスクにも影響を及ぼしかなりPCの動作を重くします。
そんな場合は、メモリをたくさん使っているアプリを終了させメモリを100%使用状態から救い出すことで動作が軽くなります。
また、メモリのスロットに空きがあるとか、メモリ容量の小さなメモリを使っている場合には、メモリ容量を追加することでメモリ100%使用状態から抜け出すことも出来ます。

しかし、以下のような場合も有り突然にPCが重たくなることも。。。


その後、何も触ってないのにGoogle Chrome がメモリを2,711.2MBまで使い始めました。


その後、3,152.6MBへ。何がGoogle Chromeを駆り立てているのでしょう??
3GBは勘弁して欲しい。。。



しばらくすると落ち着きました。
なにもしていないのに、プロセス(タスクかな?)が13から12に減っていました。
Google Chrome なにか勝手にやってくれます。
このように、突発的な事象もタスクマネージャーでは見られて、対応できることなら対応する目安になります。
上のGoogle Chrome の場合は、Chrome を停止すれば解消されるのでしょうが、そのうちまたやりだすので Chromeを使うのをやめるしか手がないかも知れません。私は便利なのでChrome を使い続けますけど。

CPUが100%に近い場合は、処理が終わるのを待つしかありません。
無駄なアプリを動かしているのなら終了させることも出来ますが、そうでない時は待つしかありません。
CPUは稼働しているプロセスやアプリのみ使用しているのでメモリのように稼働していないアプリを終了させても効果は望めません。
CPUが常に100%に近い場合は、CPUの上位機種に変えることがもっとも有効です。

ディスクが100%に近い場合も処理が終わるのを待つしかありません。
CPUと同じく無駄なアプリを動かしているのなら終了させることも出来ますが、そうでない時は待つしかありません。
ディスクが100%に近い場合は大量のデータアクセス時、Windows Updateや動画再生・編集なので、常に100%であることは無いと思います。
それでも何とかしたい場合は、SSD(ソリッドステートドライブ)に変えるとか手も有りますので検討をしてください。

ざっくりとですが、以上のようにどのようにしたら良いかの目安になりますのでタスクマネージャーを活用しましょう。

ここでの対処対象

ここで紹介する対処対象は、有っても無くてもさほど関係ないけど重たくする原因となるプロセスです。
起動時はいろいろなアプリが一斉に活動するため遅くなっても仕方のないこと何のですが、起動後の落ち着いた時間帯に少し速くなるために起動直後の大変な時に負荷をかけるプロセスはメリットが小さいので機能を停止させておきましょうという趣旨です。
例えば「Windows SuperFetch」は、アプリケーションの起動速度の向上、全体的なレスポンスの向上、空きメモリの有効活用が見込めますが、逆に立ち上げ時はその下準備のためにやたらディスクやCPUを使い起動を遅くするなど弊害があります。
私は古いPCに Windows SuperFetchのメリットを感じないので機能を停止させます。

各々のPCの能力とおメリットデメリットに合わせて、停止の対象にするか検討してください。

今後、古いPCを使っていて重いかなと思った時に確認してご紹介していきます。
以上、「Windows 10 起動が遅い時」の対処方法のご紹介まで。

Windows 10 KB4088776 インストール エラー

Windows 10 KB4088776 インストール エラー

いつも使っていないPCを立ち上げたら、やたら重くて何も作業ができない程度になりました。
どうやら理由は、Windows Update をサボっていたので、何やら頑張っているようでした。

Windows Modules Installer Worker や サービスホスト:ローカルシステムがディスクをやたら使用していたので、Windows Update 頑張って!と、しばらく放置しておきました。

 

しばらくしてWindows Update を見ると、インストール エラーになっています。

仕方ないので、再度「再試行」ボタンをクリックしてインストールを行いました。

しかし、またもやインストール エラーに、、、

再起動してインストール

そこで、今度は一度再起動してからと、、、

「今すぐインストール」ボタンをクリックして少し祈るような気持ちで。。。待ちました。
が、結果はインストール エラーでした。

 

こんな時はいつものGoogle先生に頼るしかありません。
さすがはGoogle先生!それらしいアドバイスが見つかりました。

まずは、KB4090914を入れろと。。。ふむふむ。では早速。

サクッとダウンロードし、サクッとインストールしました。
何のトラブルもなくインストールできました。

KB4090914 をインストール後にインストール

さて、もう一度KB4088776 のインストールです。

68%と順調です!
しかし、100%まで来たものの結果は、以下の通りでした。。。( ノД`)シクシク…

KB4090914 は関係なかったのか?たぶんそうなのでしょう。どうなんだろう?

しかし、このままでは気持ちも悪いので、手動で入らないか試してみることに。

手動でインストール

今回もサクッとダウンロードし、サクッとインストールしました。

インストールは完了しました。
後は再起動後に正常に反映されていればOKなのですが。。。

リブート前のOSのビルド番号

OSのビルドは、16299.192です。
Google検索によると 16299.309 が正常にインストールされた時のビルド番号になっています。

立ち上げに途中に一度リブートが入るなど、ドキドキの立ち上げでしたが、結果は以下の通りです。

良かった~^^
とりあえず、めでたしめでたし^^

同じKB4088776 インストール エラーでも、同じようにインストールが出来るかわかりませんが、一応参考にしてもらえると幸いです。
今はWindows Update も収まって非常に快適に作業ができています^^

 

以上、「Windows 10 KB4088776 インストール エラー」でした。

Windows 10 ハードウェア予約済み

Windows 10 ハードウェア予約済み

メモリの増設をしたのに、なぜかハードウェア予約済みにメモリを取られて増えてないってことはありませんか?

この現象は、基本的に32bit版でも64bit版でも起こります。
しかし、64bit版は予約済を解消できる可能性が高いですが、32bit版は解消できないこともあります。

64bit版 ハードウェア予約済み

主な原因は3つあります。

  1. メモリが認識されていない(メモリがきちんと挿さっていない)
  2. メモリの最大量を設定している
  3. グラフィックボードなどにメモリを割いている

他にも個別の不具合などで同じような現象が発生することもあります。
しかし、多くは「メモリが認識されていない」か「メモリの最大量を設定している」です。

メモリが認識されていない

そもそも挿しているメモリの容量を Windows が認識していない時など。

タスクマネージャーのパフォーマンスでメモリ量の確認

タスクマネージャーのパフォーマンスでメモリ量の確認

例えば、8.0GBメモリを挿しているのに、上のように4.0GBしかない場合は、メモリがきちんと挿さっていない可能性が大です。
また考えにくいのですが、ネットで検索してみるとBiosでは認識されているのにWindowsでは認識されないという、摩訶不思議な現象も起きているようです。
その場合は、単に挿しなおせば正常に戻るそうです。

まずは、Windowsに挿したメモリ分だけ認識されているかを確認しましょう。
何をしても認識されない場合、メモリが壊れているかマザーボードが壊れている可能性があります。

メモリの最大量を設定している

このケースは、メモリに挿した容量をWindowsがきちんと認識しているときに確認します。

タスクマネージャーのパフォーマンスでハードウェア予約済の確認

タスクマネージャーのパフォーマンスでハードウェア予約済の確認

上の例は、4.0GBのメモリを挿し、3.0GBしか使用可能になっておらず、1.0GBがハードウェア予約済になっています。
この時、メモリの最大量を3.0GBに設定している可能性が有るので確認します。

システム構成の[ブート]タブの「詳細オプション」を開き、最大メモリの設定を確認・解除します。

1)ますは、「システム構成」アプリを立ち上げます。
下のように、msconfig と入力して、表示されたシステム構成アプリをクリックします。

システム構成アプリを起動する

システム構成アプリを起動する

2)次に[ブート]タブをクリックします。

更に「詳細オプション」ボタンをクリックします。

詳細オプションを表示する

詳細オプションを表示する

3)ブート詳細オプション画面が開きます。

最大メモリのチェックを外します。

元々外れていた場合は原因がメモリの最大量を設定しているということではないのですが、これも不思議なことにチェックしてチェックを外したら上手く行ったとのネットでの報告があります。
世に中には絶対と言うことは無いので、外れていたらチェックを入れて最大メモリを指定して試してみてください。

最大メモリのチェックを外す

最大メモリのチェックを外す

  1. 再起動してメモリがほとんどすべて使用可能な状態になっているか確認します。

グラフィックボードなどにメモリを割いている

このケースは使っているマザーボードやBios設定アプリ、周辺機器デバイスによって変わってきます。
なので、個別にメモリを何かに割り当てていないかを確認してください。

32bit版 ハードウェア予約済み

Windows の32bit版はそもそも、3.0GB程度までしか使用できません。
32bit版は、4.0GBのアドレス空間にアクセスできる仕様になっていますが、その4.0GBのアクセス空間のうち、末尾の0.5~1GB程度がグラフィックスカードやその他のデバイスなどによって占有されているためです。
なので、見た目上500MB~1.0GBがハードウェア予約済みになってしまいます。
マザーボードや周辺機器デバイスによって使用できるメモリ量が変わりますので、大まかに3.0GB程度まで使用可能であれば、それで正常です。

もし、2.0GBまでしか使用可能になっていないということであれば、64bit版と同じチェックが有効です。
最大メモリや他のデバイスにメモリを割いていないか確認しましょう。

以上、「Windows 10 ハードウェア予約済み」でした。

Windows 10 Microsoft アカウントとローカルアカウントの違い

Windows 10 Microsoft アカウントとローカルアカウントの違い

Windows 10 は2種類のユーザーアカウントを使うことができます。
1つは、Microsoft アカウント
もう1つは、ローカルアカウント

ちなみに、Microsoft アカウントでサインインすれば、Microsoft が提供するさまざまなオンラインサービスが利用できるため、Windows 10では、Microsoftアカウントの使用が推奨されています。

この2つのユーザーアカウントの違いは何なのでしょうか?

2種類のユーザーアカウント

ローカルアカウントとMicrosoftアカウントについて少し説明します。

ローカルアカウント

使用するパソコンにアカウントを登録し、パソコンでサインイン(ログイン)認証を受けます。
パソコンにアカウントを登録するため、パソコン固有のアカウントになります。
複数のパソコンに同じアカウント名でアカウントを作成しても、もちろんパソコンの設定は同期されません。
また、ローカルアカウントでは、Microsoft Store からアプリをダウンロードすること、Microsoft が提供するオンラインサービスを使用したりすることができません。

Microsoftアカウント

Microsoft にアカウントを登録し、インターネット経由でサインイン認証を受けます。
Microsoftアカウントは、パソコンに電子メールアドレスとパスワードを使用して、Microsoft が提供するオンラインサービス( Outlook.com や OneDrive など)や Windows 10 へサインインするためのアカウントです。
Microsoftアカウントでサインインすると、Microsoft Store から任意のアプリをダウンロードすることができます。
また、複数のパソコンに同じMicrosoftアカウントでサインインすると、個人設定をオンラインで同期して、パソコンのテーマや壁紙、ブラウザーのお気に入り、アプリなどを共有できます。
会社などで急なPC変更があっても個人設定をオンラインで同期してくれるので、この機能は助かりますね。

どちらを選ぶ?

便利なのは Microsoft アカウントですね。私も基本 Microsoft アカウントを使っています。
Microsoft が提供するオンラインサービスにシームレスに繋がるので何かと便利です。
ただ、 Microsoft に管理されている感が残りますので、なんとなく不安と言う人も居ると思います。

Microsoft が提供するオンラインサービスを何も使っていなくて、PCも1台しか使っていない場合だと、ローカルアカウントで十分ですね。
ローカルアカウントなら個人情報も Microsoft に提供しなくて済みますしね。

ちなみに、 Microsoft アカウントもネットに接続していない OFF LINE 状態でも最後に使ったパスワードを使ってログインできるので、必ずネット接続していないとダメと言うわけではありません。

Microsoft アカウントとローカルアカウント、どちらを使っても大差ないので、Microsoft に管理されている感をあまり感じない人は Microsoft アカウントが便利だと思います。
気になる人は、個別管理のローカルアカウントで。

以上、「Windows 10 Microsoft アカウントとローカルアカウントの違い」でした。

Sql Server 偏差値の求め方

Sql Server 偏差値の求め方

Sql Server を使って偏差値を求める SQL の書き方です。
偏差値とは、ある数値がサンプルの中でどれくらいの位置にいるかを表した無次元数。
平均値が50、標準偏差が10となるように標本変数を規格化したものです。
偏差値の利用価値が高いのは、サンプルの数値の分布が正規分布に近い状態の時で、試験などの結果に良く利用されていますね。

偏差値の求め方

偏差値の求め方ですが、
1)平均点を求める
2)平均点との差を求める
3)平均点との差の平方数を求める
4)分散を求める
5)標準偏差を求める
6)平均点との差に10をかけ標準偏差で割り+50する
以上で偏差値が求まります。

SQL で偏差値を求める

偏差値を求める SQL の例を示します。

declare @tbl1 table(c_point int)
insert into @tbl1 (c_point) values (30)
insert into @tbl1 (c_point) values (40)
insert into @tbl1 (c_point) values (20)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (70)
insert into @tbl1 (c_point) values (80)

--平均値を算出する
declare @avg float
select @avg=AVG(cast(c_point as float)) from @tbl1

--標準偏差を求める
declare @varp float
select @varp=STDEVP(c_point) from @tbl1
select @varp

--平均点との差に10をかけ標準偏差で割り+50する
declare @tbl2 table(c_point int, c_standardscore float)
insert into @tbl2 select c_point, ((c_point-@avg)*10)/@varp+50 from @tbl1
select * from @tbl2
SQLで偏差値を求めた結果

SQLで偏差値を求めた結果

以上、「Sql Server 偏差値の求め方」でした。

SQL Server 標準偏差: STDEVP, STDEV

標準偏差: STDEVP, STDEV

標準偏差とは、データの平均値から見た「ばらつき具合」を数値で表したもので、標準偏差の値が小さいほど、散らばり度合いが小さいことが示されます。

指定したデータが、全てであるデータの値がとる標準偏差(standard deviation) が欲しい場合、STDEVP 関数を使います。
指定したデータが、全体の内の「標本」(抜き出した一部分)として考え、そのデータの値がとる標本標準偏差(sample standard deviation) が欲しい場合、STDEV 関数を使います。

STDEVPの数値の求め方は、
・平均値を算出する
・各データと平均値の差を求める
・各差を2乗して
・2乗した全ての求めた数値を足す
・最後にデータの数で割る(分散)
・分散の平方根を求める

STDEVの数値の求め方は、
・平均値を算出する
・各データと平均値の差を求める
・各差を2乗して
・2乗した全ての求めた数値を足す
・最後にデータ-1の数で割る(*日本工業規格)(標本分散)
・標本分散の平方根を求める
以上となりますが・・・

「標準偏差」や「分散」という言葉自体をあまり聞いたことのない方にとっては、何を言っているのか、非常に難しい説明と感じることでしょう。
わかりづらいと感じた方は、次のように覚えてください。

「計算された数値が、小さいほどデータのばらつきが少ない」
という意味で、つまり、出てきた数値が「0」に近いほどばらつきの無いデータということが分かる手法になります。

標準偏差のよいところは、標準偏差は単位の次元がデータと同じなのでデータの散らばり具合が把握しやすいと言えます。

STDEVP

構文:STDEVP( [ ALL | DISTINCT ] expression )
引数:ALL すべての値にこの集計関数を適用します。 ALL は既定値です。
   DISTINCT 重複する値は 1 つだけ有効データとします。
   expression 整数式です。 集計関数とサブクエリは使用できません。

戻り値の型は、float です。

下のSQL例文を載せておきます。

declare @tbl1 table(c_point int)
insert into @tbl1 (c_point) values (30)
insert into @tbl1 (c_point) values (40)
insert into @tbl1 (c_point) values (20)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (70)
insert into @tbl1 (c_point) values (80)

--ALL
--NULLはカウントされません
select STDEVP(c_point) as [STDEVP] from @tbl1

--DISTINCT
--60が重複しているので結果が異なります
select STDEVP(DISTINCT c_point) as [STDEVP_DISTINCT] from @tbl1

-- STDEVP(c_point)を検証
--平均値を算出する
declare @avg float
select @avg=AVG(cast(c_point as float)) from @tbl1

--各データと平均値の差を求める
declare @tbl2 table(c_point float)
insert into @tbl2 select c_point-@avg from @tbl1

--各差を2乗して
update @tbl2 set c_point=c_point*c_point

--2乗した全ての求めた数値を足す
declare @sum float
select @sum=sum(c_point) from @tbl2

--データの数で割る
declare @varp float
select @varp=@sum/count(c_point) from @tbl2

--平方根を求める
select sqrt(@varp) as [STDEVP(c_point)検証値]
STDEVP 結果

STDEVP 結果

STDEV

構文:STDEV( [ ALL | DISTINCT ] expression )
引数:ALL すべての値にこの集計関数を適用します。 ALL は既定値です。
   DISTINCT 重複する値は 1 つだけ有効データとします。
   expression 整数式です。 集計関数とサブクエリは使用できません。

戻り値の型は、float です。

下のSQL例文を載せておきます。

declare @tbl1 table(c_point int)
insert into @tbl1 (c_point) values (30)
insert into @tbl1 (c_point) values (40)
insert into @tbl1 (c_point) values (4)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (80)

--ALL
--NULLはカウントされません
select STDEV(c_point) as [STDEV] from @tbl1

--DISTINCT
--60が重複しているので結果が異なります
select STDEV(DISTINCT c_point) as [STDEV_DISTINCT] from @tbl1

-- VAR(c_point)を検証
--平均値を算出する
declare @avg float
select @avg=AVG(cast(c_point as float)) from @tbl1

--各データと平均値の差を求める
declare @tbl2 table(c_point float)
insert into @tbl2 select c_point-@avg from @tbl1

--各差を2乗して
update @tbl2 set c_point=c_point*c_point

--2乗した全ての求めた数値を足す
declare @sum float
select @sum=sum(c_point) from @tbl2

--データの数で割る
--各観測値の平均値からの偏差の二乗の和を観測個数から1を引いた数で割ったばらつきの尺度
declare @var float
select @var=@sum/(count(c_point)-1) from @tbl2

--平方根を求める
select sqrt(@var) as [STDEV(c_point)検証値]
STDEV 結果

STDEV 結果

以上、SQL Server STDEV, STDEVP 標準偏差でした。

SQL Server 分散: VARP, VAR

分散: VARP, VAR

分散とは、データの平均値から見た「ばらつき具合」を数値で表したもので、数学などでは統計学や確率論にて用いられる手法の1つです。

指定したデータが、全てであるデータの値がとる分散(variance) が欲しい場合、VARP 関数を使います。
指定したデータが、全体の内の「標本」(抜き出した一部分)として考え、そのデータの値がとる標本分散 (sample variance) が欲しい場合、VAR 関数を使います。

VARPの数値の求め方は、
・平均値を算出する
・各データと平均値の差を求める
・各差を2乗して
・2乗した全ての求めた数値を足す
・最後にデータの数で割る

VARの数値の求め方は、
・平均値を算出する
・各データと平均値の差を求める
・各差を2乗して
・2乗した全ての求めた数値を足す
・最後にデータ-1の数で割る(*日本工業規格)
以上となりますが・・・

「分散」という言葉自体をあまり聞いたことのない方にとっては、何を言っているのか、非常に難しい説明と感じることでしょう。
わかりづらいと感じた方は、次のように覚えてください。

「計算された数値が、小さいほどデータのばらつきが少ない」

という意味で、つまり、出てきた数値が「0」に近いほどばらつきの無いデータということが分かる手法になります。

VARP

構文:VARP( [ ALL | DISTINCT ] expression )
引数:ALL すべての値にこの集計関数を適用します。 ALL は既定値です。
   DISTINCT 重複する値は 1 つだけ有効データとします。
   expression 整数式です。 集計関数とサブクエリは使用できません。

戻り値の型は、float です。

下のSQL例文を載せておきます。

declare @tbl1 table(c_point int)
insert into @tbl1 (c_point) values (30)
insert into @tbl1 (c_point) values (40)
insert into @tbl1 (c_point) values (4)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (60)
--insert into @tbl1 (c_point) values (NULL)
insert into @tbl1 (c_point) values (80)

--ALL
--NULLはカウントされません
select VARP(c_point) as VARP from @tbl1

--DISTINCT
--60が重複しているので結果が異なります
select VARP(DISTINCT c_point) as VARP_DISTINCT from @tbl1

-- VARP(c_point)を検証
--平均値を算出する
declare @avg float
select @avg=AVG(cast(c_point as float)) from @tbl1

--各データと平均値の差を求める
declare @tbl2 table(c_point float)
insert into @tbl2 select c_point-@avg from @tbl1

--各差を2乗して
update @tbl2 set c_point=c_point*c_point

--2乗した全ての求めた数値を足す
declare @sum float
select @sum=sum(c_point) from @tbl2

--最後にデータの数で割る
select @sum/count(c_point) as [VARP(c_point)検証値] from @tbl2
VARP 結果

VARP 結果

VAR

構文:VAR( [ ALL | DISTINCT ] expression )
引数:ALL すべての値にこの集計関数を適用します。 ALL は既定値です。
   DISTINCT 重複する値は 1 つだけ有効データとします。
   expression 整数式です。 集計関数とサブクエリは使用できません。

戻り値の型は、float です。

下のSQL例文を載せておきます。

declare @tbl1 table(c_point int)
insert into @tbl1 (c_point) values (30)
insert into @tbl1 (c_point) values (40)
insert into @tbl1 (c_point) values (4)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (60)
insert into @tbl1 (c_point) values (80)

--ALL
--NULLはカウントされません
select VAR(c_point) as VARP from @tbl1

--DISTINCT
--60が重複しているので結果が異なります
select VAR(DISTINCT c_point) as VARP_DISTINCT from @tbl1

-- VAR(c_point)を検証
--平均値を算出する
declare @avg float
select @avg=AVG(cast(c_point as float)) from @tbl1

--各データと平均値の差を求める
declare @tbl2 table(c_point float)
insert into @tbl2 select c_point-@avg from @tbl1

--各差を2乗して
update @tbl2 set c_point=c_point*c_point

--2乗した全ての求めた数値を足す
declare @sum float
select @sum=sum(c_point) from @tbl2

--最後にデータの数で割る
--各観測値の平均値からの偏差の二乗の和を観測個数から1を引いた数で割ったばらつきの尺度
select @sum/(count(c_point)-1) as [VAR(c_point)検証値] from @tbl2
VAR 結果

VAR 結果

以上、SQL Server VAR, VARP 分散関数でした。