SQL グループ(GROUP BY)毎にソート順を振りたい時 (oracle)
注:oracle環境でのお話です。
グループ化したのはいいけども、ソート順がめちゃくちゃになってしまった!
どうしてもグループ結果をソートしなくちゃならない!
時に読んでください。
まずこんなテーブルがあったとします。
ID | グループ名 | 行先 | グループ名ソート順 |
---|---|---|---|
01 | たぬき | 東京 | 04 |
02 | かめ | 東京 | 02 |
03 | うさぎ | 大阪 | 03 |
04 | きつね | 大阪 | 01 |
05 | ごりら | 沖縄 | 05 |
やりたい事
・同じ行先でまとめる。(GROUP BY)
・同じ行先を持つグループ名はカンマ区切りでまとめる。(LISTAGG())
・グループ名を連結する際にグループ名ソート順を使用。
・行先毎にソート順を振る。(同じ行先内で最も小さなグループ名ソート順を使用)
↓こんな感じにしたい↓
グループ名 | 行先 | ソート順 |
---|---|---|
きつね、うさぎ | 大阪 | 01 |
かめ、たぬき | 東京 | 02 |
ごりら | 沖縄 | 05 |
そんな時のコード
SELECT LISTAGG(TBL1.グループ名,',') WITHIN GROUP (ORDER BY TBL1.グループ名ソート順) AS グループ名 ,TBL1.行先 AS 行先 ,MIN(TBL1.グループ名ソート順) AS ソート順 FROM TBL1 GROUP BY TBL1.行先
解説
元々持っていたソート順を、グループ化後も引き継ぎたい時
グループ化した結果はソート順を保証しません(暗黙的に勝手にソートされます)ので、手を加えてやる必要があります。
グループ化前に持っていたソート順はそのままでは使用できませんので、MIN()を使用し、グループ内で最も小さなソート順を取得しています。
その他
この例とは違う形で連番が振りたいよという場合
・DENSE_RANK()
・ROW_NUM()
この辺を調べるといいかもしれません
PC 無線LAN子機 ネットに接続できない!
先日新しいPCを組んで、そのPCで無線LAN子機を使用したネットワークへの接続設定をしていたのですが、ネットに接続できなくなってしまうというトラブルがありましたのでメモ。
■PC環境
・デスクトップPC
「Archer T3U AC1300 ミニ MU-MIMO 無線LAN子機」
・USBポートはケース前面、背面にそれぞれある
■発生したトラブル
最初のセットアップ中にはとりあえず前面のUSBポートに無線LAN子機を接続してセットアップを進めていました。この時点では特に問題なし。
セットアップが終わり、邪魔にならないよう背面のポートへ無線LAN子機を移動すると、ここでトラブル発生。
何故か一瞬だけネットワークに繋がりますが、すぐに切断されてしまいます。
再び前面ポートに接続し直すと問題なくネットワークに繋がります。
■試行錯誤編
チップセットドライバ他、ドライバの更新を試しましたが改善せず。
困って色々調べているとUSB3.0の電波干渉という情報にヒット。
特に2.4Ghz帯無線とUSB3.0機器の電波干渉が酷いとの事。
Wifi接続は5Ghz帯に設定していましたが、2.4Ghz帯程ではないにしろ影響があるということなんでしょう。
■解決編
ケース前面ポートへの接続では問題なく動作しますので、ケースから距離を置いて無線LAN子機を設置しておけば問題ないだろうと判断しました。
前面ポートに子機をつけておくのは邪魔になるので、今回はUSBハブを前面ポートに繋ぎ、そこへ子機を接続することにしました。
ケーブル長1.5mのUSBハブを接続し、ケースから少し離して設置。
すると問題なくネットワークへ接続ができました。
Wordの改行と改行コードについて
Wordの改行について、少し詰まったのでメモ。
Wordで入力できる2つの改行
①普通の改行(改段落)
Enterキーで入力される改行。
Wordユーザーではない自分は普通にEnterで改行してしまっていますが実はこれがあまり良くないようです。
②と区別する為、「改段落」とも言うらしい。
その名の通り本来は改段落する為のものだそうです。
②垂直タブ
Shift+Enterキーで入力される改行。
垂直タブと言うやつ。
同じ段落内での改行にはこちらを使うべき、らしい。
それぞれの改行コード
①改段落(Enter) : CHR(10) または CHR(13)
②垂直タブ(Shift+Enter) : CHR(11)
おまけ
Wordで段落番号(行頭に自動で番号振るやつ)が設定されている場合、段落毎に自動で番号が振られます。
番号を振らずに改行したい場合には垂直タブで改行するとよいです。
Enterで改行して振られた番号を消して・・・という手間が省けます。
プログラム側から文書を組み立てたい場合には、この使い分けが必須になりますね。
以上!
Gmail 添付ファイルが表示されない 謎
Gmail受信トレイで添付ファイルが表示されない事がある
仕事のメールを確認していて(今更)気付いたんですが、Gmailの受信トレイで添付ファイルが表示されない事があるようです。
※このプレビューできるやつです
詳しくは確認していませんが、本文の文字数が多い場合に表示されていないような気がします。
このメールには添付ファイルがありますが、表示されていません。
受信トレイに表示されるメール一覧を見て添付ファイルの有無が分かるので便利ですが、これだけを頼りにしていると添付ファイルを見落としてしまうかもしれません。
スレッドのメール本文がつらつらと引用されている場合等、かなり下までスクロールしないと添付ファイルの存在を発見できない事があります。(ありました)
Gmailで添付ファイルを必ず表示するようにする方法
歯車アイコンでクイック設定を開き、「解像度」を標準に変更してください。
この設定で添付ファイルのプレビュー表示はされなくなりますが、添付ファイルが有る場合はクリップアイコンが表示されるようになります。
プレビュー表示と違い必ず表示される為、見落としてしまうこともないでしょう。
さようならGmail
Gmailは昔から使っていて馴染みがあったので仕事でも使っていましたが、今後仕事用メールにはThunderbirdを使うことにします。
実はこれ以外にも仕事のメールがお節介フィルタリングで迷惑メールに飛ばされたり
Gmail以外の外部アドレスの受信間隔が非常に長くて困ったりしていました。
(長いときは30分以上も受信されないことがあります)
Gmailに慣れていたのとUIも気に入っていたので、フィルタリング設定をしたり、Thunderbirdからメール転送して受信遅れがないようにしたり工夫をして使っていましたがもう止めておきます。
そもそも、仕事用に使うのが正しくないのだと思いますけれども・・・。
Chrome リモートデスクトップ 文字が二重に入力される現象
解決方法
★「ローカルPCの再起動をお試しください!」
Chromeリモートデスクトップを利用して会社のPCを操作していたところ
突然、キーボードの入力が二重に入力されてしまうという現象が発生した。
「A」キーを押すと「ああ」と入力されるので、まともに作業できなくなってしまった。
特に何かを操作した覚えはないので、原因は不明。
ローカルPC側では問題がなさそうだったので、Chromeリモートデスクトップの問題か、リモートで繋いでいるPCの問題か・・・。
リモート接続を一旦切って再接続したり、接続先のPCのキーボード入力受付設定
(チャタリング対策みたいなやつ)をいじってみたりするも改善せず。
仕方がないのでローカルPCを再起動してから接続し直すと・・・
・・・解消されました。なんだったんだ一体。
ネットワークか何かの問題だったんでしょうか。謎です。