Minerva Consulting AI & データエンジニア

業務の高速化・効率化の考え方と実装例

SQL

新着順 人気順

Excelで実現する 製造装置ログの「疑似リアルタイム監視」

なぜ Excel なのか リアルタイム監視というと、 専用の監視システム BIツール 大規模な基盤構築 を想像されがちです。 しかし実際の現場では、 まず「できるかどうか」を確認したい 装置ログの価値を関係者に理解してもらいたい 上司・経営層に説明できる形…

SQL  続:月初と月末日を求める

このテーマで、関数をつかうと、シンプルに作れます。 EOMONTH という関数は 月末を求める関数です。 EOMONTH('対象日', 追加月数) 月数はマイナスもあり ------------------------------------------------ サンプルコード SELECTDATEADD(Day,1,EOMONTH(ge…

SQL 累積を求める SUM() over (Partition By ** ROWS UNBOUNDED PRECEDING)

SQL で データ集計して、時系列のデータの累積を求める というテーマがあります。 つまり 開始から各行までの合計だったり、過去7回の累計で移動平均を求める など これまではストアドプロシジャのカーソル処理で1行づつ計算する方法を採っていました。 と…

DX事例02_製造装置ログ解析

PDFダウンロード 製造装置が出力する「1行のログ」そのまま眠らせていませんか? 1行の文字列を分解すれば、稼働状況・品質状態・異常兆候の把握につながります。 製造装置は状態情報をログとして出力しています。1行の文字列を、判断できる形へ変えていきま…

SQL 高速化の金言

SQL_DX02_UNION BIサービス SQL高速化の仕組み SQL高速化 を考えてみます。 2つのレコードを接続するとき 例1 1万行の検査データ と 100行の 品目マスタデータ があり 検査データの 品目コードに 品目マスタの 品目名と標準原価をつなぐ。 方法 ①LEFT O…

製造装置の稼働状況を“1行ログ”から読み解く

― SQL MID関数によるリアルタイム分析の基本 ― 製造装置は「1行のテキスト」で状態を語っている 製造現場では、多くの装置が稼働状況を「項目=値」形式のテキストログとして出力しています。 これは、以下のような装置でよく見られる形式です。 チップマウ…

SQL 処理速度を高速化しませんか?

SQL_DX01_Join 【業務でよくある状況】 業務システムや帳票作成では、次のようなSQLを書くことが当たり前のようにあります。 伝票データ(検索テーブル) 商品・顧客・部署などのマスタテーブル ほとんどのSELECT文で JOIN が発生する しかし現場では、 と…

SQL備忘 時刻指定で日付を変更する

業務インパクト ・工場などで昼勤・夜勤の2交代制を採用している場合、 夜勤は24:00を超えても「翌日」ではなく、昼勤と同じ業務日付として扱われます。 ・つまり、翌朝の昼勤開始時刻(例:8:00)までが、業務上は「前日」に該当します。 ・日別集計では、 …

SQLで日付時刻の6分刻み文字を作る

日付時刻の6分刻み文字を作る 10分刻み、6分刻み といった時間枠の箱の中の イベント発生件数や 合計値を求めるために、 Where 発生時刻 >= '2017/10/07 09:06:00' and 発生時刻 < '2017/10/07 09:12:00' とやると 実行時間が恐ろしく長くなる これを回避…

SQL 規定値に関数使って作ってみた

SQL

SQL規定値を作ってみた。 以前から使っていたが、規定値内に関数が使えることを検証したかった。 内容は レコードの保存時刻を 規定値で登録する、というもの 下図:テーブル定義の 「規定値またはバインド」に 関数をいれる。 図は ユニバーサル時刻なので…

SQL 数字文字の桁数を調整する

SQL

10, 20, 30, , , といった数字文字を 0010, 0020, 0030, , , のような 4桁数字に変換することはよくあります。 --- コード ---- DECLARE @No nvarchar(20) = '20' SELECT RIGHT('0000' + @No,4) as Num4 ---- 結果 ----- Num40020 ------------------ それ…

SQL SELECT文の高度な関数

SQL

docs.google.com

ストアドプロシジャの内部ループ処理

ストアドプロシジャの内部ループ処理とは何か 本記事で紹介しているのは、SQLのストアドプロシジャ内部で、変数とループ処理を用いて SQL 文そのものを動的に生成・実行する手法です。 Excel-VBA で「変数を使い、For ループで処理内容を組み立てる」のと同…

SQL_MID関数

SQL

説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 CREATE FUNCTION [dbo].[GetMidText] ( @strTGT nvarchar(max) --= 'ID=123 氏名=山田太…

SQL サブクエリの入れ子のサブクエリ ここまでできます。

必要に迫られて、Case When 内に サブクエリをいれてみました。 備忘でここに記します。 ----------------------------------- ,case when Cnt = (select count(distinct(Place)) PlaceCnt from [dbo]. [Table_xxxx] where InspstepsID = A.InspstepsID and …

SQL 困ったときのトリガー頼み

SQL

SQLテーブルのレコードの日付列が空白になっている!! エッ その日付で集計分析しているのに!! 登録するタブレット側のプログラムを修正するには時間がない。 こんな時はトリガーの出番です。トリガーとは、レコードが新規追加や更新が発生した時に作動す…

SQL ROW_NUMBER() OVER(partition で欲しいデータを得る

同じ品物を何度も購入したとき、最安値は? 同じ品物を何度も購入したとき、最後に購入した時の価格は? など いろんな条件でデータが欲しくなります。 そんなとき、ROW_NUMBER() OVER(partition を使うと便利です。 元々のデータ 検索するコード SELECT * F…

SQL 月初日と月末日

よく使うのですが、毎回コーディングすると大変なので、備忘でしるします。 SELECT dateadd(day,0,convert(date,convert(nvarchar,year(dateadd(MONTH,0,dateadd(hour,9,getdate())))) + '/' + convert(nvarchar,month(dateadd(MONTH,0,dateadd(hour,9,getda…