2018-01-01から1年間の記事一覧
ヌル文字(NUL) の判定 MySQLではnull文字は '\0' や CHAR(0) で表せますなので ヌル文字を含む文字列は 文字列 LIKE '%\0%' のような感じで判定できます(他の文字列系の関数でもよいはず) mysql> SELECT CHAR(0) LIKE '%\0%'; +---------------------+ | CHA…
BigQueryではSTRUCT(構造体)型やARRAY(配列)型が使えます データ型 | BigQuery | Google CloudSTRUCT型のカラムでGROUP BYしようとするとGrouping by expressions of type STRUCT is not allowed atのようなエラーが出てきて実行することができません 同様に…
BigQueryにBigQuery MLという機械学習の機能が追加されました。今はロジスティック回帰による分類と線形回帰による回帰問題について学習ができるようです学習時に変数に対してどのような前処理が行われるのか気になったので調べてみました 誤りなどがあった…
PythonやRubyだと[1, 2] * 3と書くと[1, 2]を3回繰り返した配列[1, 2, 1, 2, 1, 2]が得られます これをPHPで簡単に書く方法がないか考えてみました 二重のforループで配列に足していく方法 最初に自明な方法の二重のforループで足していく方法を書いておきま…
整数(INT64型)や浮動小数点数(FLOAT64型)をBYTES型にしたかったので自前で処理をUDFとして書きました BigQueryのCAST関数でBYTES型にキャストでできるのはBYTES型自身とSTRING型に限られているので、他の型を変換したいときには自分で処理を書く必要がありま…
BigQueryのクエリでテーブル名の末尾に日付などを入れておいて _TABLE_SUFFIX のカラムの条件で利用するテーブルを絞り込みたい時に、_TABLE_SUFFIXの条件をビューやWITH句の外側から書いてみる話です
残念なことにDBにJSONなどではなくPHPでシリアライズされた形式でデータが保存されていることがあります この中身をBigQuery側から参照したかったので調べてみました軽く検索したところJavaScriptでPHPのシリアライズされたデータをもとに戻せるライブラリは…
素数列挙 以前書いた記事では\(10^4\)ぐらいのオーダーまでしか素数を列挙できませんでしたが、クエリを工夫して\(10^7\)ぐらいまでは行けるようになりました sucrose.hatenablog.com 以前のクエリ 上の記事に書いた試し割りによる\(10^4\)個ぐらいまでが限…
GENERATE_ARRAY(start_expression, end_expression[, step_expression])関数を使うと連番の数値(等差数列)を作ることができます リファレンス しかし一度に作る個数が多いとError: GENERATE_ARRAY(1, 10000000, 1) produced too many elementsのようにエラー…
範囲を選択してCtrl + /を押せばよいみたいです(Macの場合は⌘ Cmd + /) BigQueryのキーボードショートカット 以下の範囲選択した状態でCtrl + /を押すと 文字が書かれている部分だけコメントアウトされます 逆にこの形式(先頭に-- )でコメントアウトされてい…
以前BigQueryで配列をzipする記事を書きました 「これを使って配列に添字をくっつけることができる」的なことを書いていたのですが、添字を得るだけならWITH OFFSETと書くだけでよいことに気づいたのでメモしておきます sucrose.hatenablog.com上の記事ではU…
以前JShellでワンライナーのスクリプトっぽく書くのに挑戦しました sucrose.hatenablog.com この記事を書いてからJavaでワンライナーを書いて他の言語よりも嬉しい場合ってあんまりないかもと思い始めてきましたとりあえず思いついた例として、JavaのRobotク…
Java9からJShellというREPL(対話型の実行環境)が使えるようになりました main関数などを書かずともコード片を入力すればその実行結果を試すことができます対話形式以外にもファイルもしくは標準入力でコードを渡すと実行してくれるので、簡単なワンライナー…
最近書いた再帰を使った正規表現を可視化しようと思ってGoogle検索してみたのですが、上位に出てくるサイトでも日本語が使えなかったりサポートしている正規表現にPCREの範囲(というか再帰)が含まれていなかったりいろいろでした いくつか正規表現の可視化サ…
MySQL 5.7からはJSON型のカラムが使えるようになりましたこのJSON型にはMySQLのいわゆるNULL値とは別に値がないことを示すnullという値があって混乱したのでメモしておきます (この記事の内容はたまたま手元にあったMySQL 5.7.20で確かめました)便宜上この記…
PerlやPHPなどの標準の正規表現ライブラリはパターンの再帰をサポートしています(どこまでを正規表現というかはともかくとして)以下の記事のFizzBuzzを解く話で使った3の倍数を表す正規表現が再帰を使えばスッキリ書けそうだったので試してみました正規表現…
FizzBuzzを正規表現で解きたくなったので解いた 知ってる人が多いと思いますが念のため問題の内容を説明しておくと、入力された整数が3の倍数のときはFizz、5の倍数のときはBuzz、15の倍数のときはFizzBuzz、その他のときは数値をそのまま出力します Fizz Bu…
前にAtCoderのレーティングの分布について調べて記事を書きました sucrose.hatenablog.com Twitterで「AtCoderにたくさん参加すればレーティングが上がる」という話を見かけて気になったので、ユーザーの参加回数とレーティングの関係を雑にグラフにしたりレ…