読者です 読者をやめる 読者になる 読者になる

TechNote

とあるエンジニアのただのメモ

SQL

ExcelだけでSQLのGROUP BY相当の集計結果を出すベストプラクティス

仕事柄、台帳風のExcelファイルを突然見せられて「このExcelデータで挙がっている項目の件数TOP10を出したいんだけど...」的なことを相談されることがときどきあります。 そんなとき、とり得る選択肢はいくつかあると思いますが、ベストプラクティス…という…

意外とメジャーなデータベース? FirebirdというDBを修復する必要に迫られた話

とあるソフトの中で使用されていたFirebirdというデータベースが壊れたっぽく、対応を迫られた。Firebirdの日本語情報も少なかったため、そのときにとった対応を最低限メモとして残す。 photo credit: AndiH via photopin ccサマリー 1.Firebirdに触れるこ…

Accessのパススルークエリで高速化してみたメモ

最近、外注システムのDBにAccessから接続して、分析業務を行う機会が多い。Oracle等のフロントエンドとしてACCESSを使用する機会は、社内情シスであれば頻繁にあるだろう。そんなとき、普通はOracle内のテーブルにリンクした後、リンクテーブルをACCESSのデ…

SQLで複数行あるデータのみを抽出する方法

SQL

SQLでDBからデータを取得する際、重複を削除するのはDISTINCT句などで可能。 逆に複数行あるもののみ取得するときは下記のようにgroupbyとhavingを組み合わせる。 SELECT HOGEHOGE FROM FOO GROUP BY HOGEHOGE HAVING COUNT(HOGEHOGE)>1 現場で使えるSQL―Ora…

CodeIgniterでテーブル結合例

コントローラのみの場合 //スタッフ情報取得 $sql = "select a.KANJINAME,b.WARDNAME,c.PROFESSIONNAME "; $sql = $sql." from M_STAFF as a "; $sql = $sql." LEFT JOIN M_COMWARD as b ON a.STAFFCODE = b.WARDCODE "; $sql = $sql." LEFT JOIN M_COMPROFE…

INSERT INTOのいろいろ

SQL

INSERT IGNORE INTO ... 重複するKEYが既に存在する場合、データは登録されない INSERT IGNORE INTO members(id, name) VALUES(2, 'TARO'); INSERT INTO ... ON DUPLICATE KEY UPDATE ... 重複するKEYが既に存在する場合、そのデータをUPDATEする INSERT INT…