次のSELECT文は、Employeeエンティティからdepartment(所属部署)を抽出して表示します。つまり、Department型のオブジェクトのListを取得できます。 ただし、何人かは同じ部署に所属しているので、Listの中身は重複しています。次の実行結果を見てください。 (JpqlTestの[SELECT5]のボタンで実行できます) SELECT e.department FROM Employee e [ Department [no: 2, name: QA] ] [ Department [no: 2, name: QA] ] [ Department [no: 2, name: QA] ] [ Department [no: 1, name: Engineering] ] [ Department [no: 1, name: Engineering] ] [ Depa
WHERE が SELECT とやり取りするように、HAVING 句は GROUP BY 句に対して条件を設定します。WHERE 検索条件がグループ化操作の前に適用されるのに対し、HAVING 検索条件はグループ化操作の発生後に適用されます。HAVING 構文は、集計関数を含めることができる点を除けば、WHERE 構文と同じです。HAVING 句では、選択リスト内の項目はどれでも参照できます。 次の例では、SalesOrderDetail テーブルを製品 ID でグループ化し、注文の合計金額が $1,000,000 を超えていて、平均注文数が 3 個未満の製品のグループのみを含めます。 USE AdventureWorks2008R2; GO SELECT ProductID, AVG(OrderQty) AS AverageQuantity, SUM(LineTotal) AS Tota
これまでの記事で、基本的なSELECT文の実行はマスターできたんじゃないでしょうか。今回からは、少し高度な内容に踏み込んで行きたいと思います。 まずは、業務でよく利用する機能として「集計機能」を説明したいと思います。例えば商品別の販売個数、一日の売上合計など、業務を行う中で様々な集計がされています。集計をする為には、何をキーに集計するかが重要です。 SQLで集計を行う SQLで集計を行うには、「集計関数」と呼ばれる関数を実行します。Excelの関数と似ていて、名前からも推測しやすいものばかりです。集計関数は、SELECT句の中で直接記述します。 集計関数の種類 中でもよく利用する集計関数を表に纏めるとこんな感じです。どれもExcelでもよく使うものですね。 集計関数 説明 SUM 合計を求める AVG 平均を求める MAX 最大値を求める MIN 最小値を求める COUNT 個数(行数)を
鉄道駅の駅名と位置データ(緯度・経度)を取得 PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?link a dbpedia-owl:Station; rdfs:label ?title; geo:lat ?lat; geo:long ?long. } 鉄道駅の駅名と位置データ(緯度・経度)を取得 PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-synt
I need to perform a query against DBpedia: SELECT DISTINCT ?poi ?lat ?long ?photos ?template ?type ?label WHERE { ?poi <http://www.w3.org/2000/01/rdf-schema#label> ?label . ?poi <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat . ?poi <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?long . ?poi <http://dbpedia.org/property/hasPhotoCollection> ?photos . OPTIONAL {?poi <http://dbpedia.org/property/w
ここから、「g01とg02の両方に属している(AND)useridを抽出」したいのです。 ぱっと思いつかず調べてみると、 「横持ちに変換する」ソリューションがよくヒットしましたが、 groupidが運用によって増えていくような状況だと、あまり適しません。 思いついた 当然他でもやっている方はいらっしゃるでしょうが、あまり見かけなかったので紹介します。 select userid, count(1) from table where groupid in ('g01','g02') group by userid having count(1) = 2 userid count(1)
--1 create table PLAN_TABLE(初回のみ) SQLPLUS @%ORACLE_HOME%\rdbms\admin\utlxplan.sql --2 表関数 VIEW 設定(参照し易くするための設定、初回のみ) CREATE VIEW plan AS SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('plan_table',NULL,'serial')); (%ORACLE_HOME%\rdbms\admin\utlxpls.sql) --3 SQL の前に EXPLAIN PLAN FOR を付ける EXPLAIN PLAN FOR SELECT * FROM ~; --4 実行計画の確認 SELECT * FROM plan; --1 ロールの作成(初回のみ、DBA 権限が必要) SQLPLUS @%O
2006年07月10日 クエリを思いつかなかった子のために。これはあくまでヒントだぞ。 以降の例では Oracle9iリリース2で説明しています。 データベースのテーブルには、何故か無駄に横長のものがあったりします。 ホスト時代のデータセットイメージをそのままテーブルフォーマットにしちゃったようなやつですね。項目名に「FILLER1」とか名前がついている( ̄▽ ̄; こんなテーブルがあるとします。 SQL> DESC 売上ランキング横; 名前 NULL? 型 ---------------------------- -------- -------------------------- 売上年 VARCHAR2(4) 1位製品 VARCHAR2(10) 1位売上 NUMBER(5) 2位製品 VARCHAR2(10) 2位売上 NUMBER(5) 3位製品 VARCHAR2(10) 3位売上
2009年07月14日 ResultSetからフィールド名を取得する方法 普通にDBからデータを取得する場合は、 ----------------------------------------------------- String sql = "SELECT * FROM test"; ResultSet rs = executeQuery(sql); while(rs.next()) { String id = rs.getString("id"); String name = rs.getString("name"); : } ----------------------------------------------------- のように、フィールド名を指定して取得する。 が、 そもそものフィールド名を取得したい場合、ResultSet Metadataを使用する。 -----
Smarty は PHP で使用できるテンプレートエンジンです。 PHP は HTML を混ぜて記述できますが、その便利さのおかげでロジック部分とデザイン部分が混合してしまいます。一人でやる分にはそれでいいのですが、混合しているとプログラマとデザイナで作業を分担することが出来ません。そこで登場するのがテンプレートエンジン Smarty です。 Smarty を使うのは簡単です。基本的な流れとして、ロジックを書いた PHP ファイルと、デザインを書いたテンプレート HTML ファイルを作成します。 PHP ファイルには、Smarty ライブラリを include して、そこにユーザに見せる値とか、データベースから SELECT した内容などを登録します。一方、テンプレート(HTML)には、デザインを書いて、値を嵌め込めば OK です。また、if/for/foreach 文も記述できます。 で
As of 2017, DeepDive project is in maintenance mode and no longer under active development. The user community remains active, but the original project members can no longer promise exciting new features/improvements or responding to requests. For the more up-to-date research, please see the Snorkel Project or Ce Zhang's Projects. What does DeepDive do? DeepDive is a system to extract value from d
指定した複数の値に一つ以上一致するレコードを検索するにはIN句を使用します. IN IN句の基本構文は以下のようになります. SELECT 列名1 ,列名2, ... FROM テーブル名 WHERE 列名 IN (条件1, 条件2, ...) IN句はフィールドの値がIN句の中で指定した値のいずれかに一致した場合に真を返します. 上記のIN句を用いたSQLと下記のOR句を用いたSQLは等価になります. SELECT 列名1 ,列名2, ... FROM テーブル名 WHERE 列名 = 条件1 OR 列名 = 条件2 OR ... またIN句はNOT句と組み合わせることで,指定した値のいずれにも一致しないデータを取得することができます. SELECT 列名1 ,列名2, ... FROM テーブル名 WHERE 列名 NOT IN (条件1, 条件2, ...) 上記のNOT INを用い
SQL 5章 データの参照 5.1. SELECT によるデータの参照 5.2. 条件付き参照 1. 不等式を使った述語 2. ブール演算子を使った述語 5.3. 特殊演算子 1. IN 演算子 2. BETWEEN 演算子 3. LIKE 演算子 4. IS NULL 演算子 5.4. 集約関数 5.5. グループ化 1. GROUP BY 句 2. HAVING 句 5.6. 並べ替えと名前付け 1. 出力の並べ替え 2. 出力列の名前付け 5.5. グループ化 SQL におけるグループ化とは、同列内の値の中で、同じ値を持つデータごとに集合化することをいいます。グループ化には GROUP BY 句を用います。また、グループ化された情報に対して条件を設定し、その条件に合致するものだけを抽出することもできます。これには、GROUP BY 句でグループ化する列名を指定した後、HAVING 句
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く