タグ付けされた質問 「query」

データベースまたはその他の情報管理システムに保存されている情報を要求または変更するクエリを作成する。質問には、テーブルとインデックスの定義、サンプルデータ、予想される出力、および特定のシステム(MySQL、PostgreSQL、Oracle、SQL Server、MongoDBなど)のタグを含める必要があります。

5
大規模なデータセットでの時間ごとのグループ化
MS SQL 2008を使用して、250万件のレコードから平均フィールドを選択しています。各レコードは1秒を表します。MyFieldは、これらの1秒のレコードの1時間ごとの平均です。もちろん、サーバーのCPUが100%に達し、選択に時間がかかりすぎます。SQLが各リクエストでこれらのレコードをすべて選択する必要がないように、これらの平均値を保存する必要があります。何ができますか? SELECT DISTINCT CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) AS TimeStampHour, MIN([timestamp]) as TimeStamp, AVG(MyField) As AvgField FROM MyData WHERE TimeStamp > '4/10/2011' GROUP BY CONVERT(VARCHAR, [timestamp], 1)+' '+ CAST(DATEPART(Hh,[timestamp]) as VARCHAR) ORDER BY TimeStamp
12 sql-server  query 

3
Microsoft SQL Server内から古いクエリプランをすべてクリアするにはどうすればよいですか?
Microsoft SQLデータベースを使用する既製のアプリケーションがあります。このアプリケーション内で、各レポートのさまざまな選択基準を選択します。その後、このアプリケーションはこれらのレポートを実行します。 クエリプランに問題があると思います。毎日実行する最初のレポートは、非常に高速で7分実行されます。最初のレポートの後に実行されるレポートは1時間以上かかります。 毎晩、SQL ServerエージェントとSQL Serverを停止および起動するスケジュールされたタスクを実行します。このSQL Serverの1つのインスタンス内には、約25の他のデータベースがあります。他のデータベースにはパフォーマンスの問題はありません。先ほど述べた市販製品のみです。 SQL Serverが現在メモリに保持しているすべてのクエリプランをクリアする方法はありますか? 同じサーバー上の他のデータベースに依存する30人程度のユーザーに影響を与えずにこれを行うにはどうすればよいですか?

3
時間間隔に基づくレコードのグループ化
次のスキーマのテーブルがあり、時間間隔(例:1分あたりのレコード数)に基づいてデータをグループ化できるクエリを定義し、前のグループ以降のSnapShotValueへの変更の合計を提供する必要があります。現時点では、SnapShotValueは常に増分するため、差分の合計のみが必要です。誰かがこれを行う可能性のあるSQL Server T-SQLクエリを手伝ってくれる?私はスキーマを変更することにオープンですが、これは私が現在持っているものです。 スキーマ CaptureTime (datetime) SnapShotValue (int) サンプルデータ 1 Jan 2012 00:00:00, 100 1 Jan 2012 00:00:30, 125 1 Jan 2012 00:01:00, 200 1 Jan 2012 00:01:30, 300 1 Jan 2012 00:02:15, 400 1 Jan 2012 00:02:30, 425 1 Jan 2012 00:02:59, 500 必要なクエリ結果 1 Jan 2012 00:01:00, 225 …

5
MS Accessの完全外部結合
私には2つのスタッフリストがあります。 List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 そして List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 そして、私は次の出力が必要です: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 リストAとリストBのスタッフIDが1つの繰り返しのないリストにマージされ、2つのリスト間で一致しない可能性がある2つの監督者の詳細がマージされていることに注意してください。 クエリは優れている必要はありません。各リストに最大8000件のレコードがあり、うまく実行できます。その後、必要に応じてExcelのマイナーな操作を行ってよかったです。 …
11 query  join  ms-access 

5
SQL Serverで適切な電話番号が設定されていないレコードの数を確認する最良の方法は何ですか?
私は歴史的に人々が自由に価値を提供するために使用できる分野を持っています。適切な値を持たないレコードを特定して、クリーニングできるようにする必要があります。 私はこのためにSSISを見回してきました。私の傾向は、いくつかのC#コードで正規表現を使用してスクリプトコンポーネントを使用し、その後リダイレクトすることです。それでも、C#に頼らずにこれを行う方法がSSISにあるかどうか疑問に思っていました。 適切な電話番号が記録されていないレコードの数を調べる方法を見つけるのに、あまり運がありませんでした。

3
1つのクエリで複数のカウントを行う方法は?
次のようなクエリでレコードを数えます SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%something%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%another%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%word%' カウントごとに、mysqlはテーブル全体をウォークスルーする必要があり、これは長いテーブルと多数のクエリがある場合の大きな問題です。 1つのクエリですべてのカウントを行う方法はあるのでしょうか。この場合、mysqlが各行をウォークスルーすると、すべてのカウントが処理されるため、テーブル全体を何度もスキャンする必要がありません。

3
これら2つのクエリは論理的に同等ですか?
これら2つのクエリは論理的に同等ですか? DECLARE @DateTime DATETIME = GETDATE() クエリ1 SELECT * FROM MyTable WHERE Datediff(DAY, LogInsertTime, @DateTime) > 7 クエリ2 SELECT * FROM MyTable WHERE LogInsertTime < @DateTime - 7 それらが論理的に同等でない場合、WHERE句がインデックスを効果的に使用できるように(つまり、関数のラッピングを排除する)ために、最初のクエリと論理的に同等のものを提供できますか?

4
2つのテーブル(異なるサーバー上)がまったく同じデータを持っているかどうかの確認
したがって、SQL Serverをホストしている会社が、運用サーバーからバックアップサーバーへのレプリケーションに問題を抱えているようです...いくつかのテーブルは正しくレプリケートされていると思います。複製は毎日(時間外に)行われます。 同じテーブルの2つを比較する方法はありますか。1つはバックアップからで、もう1つは本番サーバーからです。昨夜のレプリケーションが機能したかどうかを確認できますか? 私が見つけることができた唯一の方法は、両方のサーバーで次のクエリを実行し、結果が一致するかどうかを確認することでした。 SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM ( SELECT * FROM table_to_compare ) t1 上記のコードを使用すると、チェックサム値が同じであるため、テーブルは正常に複製されたようですが、この方法の信頼性はわかりません。 これをチェックするより良い方法を知っている人はいますか? Windows Server 2008コンピューターでSQL Server 2008を実行しています。 ありがとう。

3
Oracle:階層テーブルを照会するにはどうすればよいですか?
バックグラウンド これは、レポートに使用するいくつかのビューを作成するためのものです。 場所のテーブルがあり、キーフィールドは「場所」と「親」です。 これらの2つのフィールドが作成する構造は、レベルごとに、会社名->キャンパス名->建物名->フロア名->部屋名のラインに沿っています。この場合、会社名は変わりませんが、キャンパス名は変わりません。 ロケーションの構造は、通常、次のようになります。 +-----------+ | Org. Name | +-----+-----+ | +-----v-----+ +--------------------+|Campus Name|+---+--+-------------+ | +--+--------+ | | | | | | | | | | +--+-----+ +------+-+ +--+----+ +---+---+ +--+| BLDG-01|+--+ | BLDG-02| |BLDG-03| |Grounds| | +--------+ | +--------+ +-------+ +-------+ +-+------+ +-----+--+ |Floor-01| |Basement+-------+ +-+------+ +--------+ | …
10 oracle  query  view  hierarchy 

3
クエリの問題:自動列は1つしかありません
誰かがこのテーブル定義の何が問題になっているのか教えてください。 mysqlのバージョンは5.1.52-logです root@localhost spoolrdb> create table spoolqueue ( queue int, idx bigint not null auto_increment, status smallint, querystring varchar(2048), contenttype varchar(255), characterencoding varchar(16), body text, primary key(queue,idx) ); ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
10 mysql  query 

2
原因不明のInnoDBタイムアウト
最近、いくつかの非常に基本的な更新がタイムアウトし、原因を特定できませんでした。例: //#Query_time:51 Lock_time:0 Rows_sent:0 Rows_examined:0 UPDATE photos SET position = position + 1 WHERE (photo_album_id = 40470); 同じログには、Lock_time> 0のエントリはありshow innodb statusません。実行しても、関連するロックは明らかになりません。この問題は、私のアプリケーションサーバーログ(Mysql::Error: Lock wait timeout exceededmysql-slowログの対応する各エントリに関連するエラーを示す)に基づいて、少なくとも5つの異なるテーブルに影響しているようです。 ここからどこへ行くべきかについてのアイデアはありますか?私はあらゆる方向に行き止まりを打っています。ありがとう。 編集: CREATE TABLE `写真`( `id` int(11)NOT NULL auto_increment、 `type` varchar(255)NOT NULL、 `photo_album_id` int(11)NOT NULL、 `user_id` int(11)NOT NULL、 `title` varchar(255)default 'Untitled'、 「説明」テキスト、 `credit` varchar(255)デフォルトはNULL、 `photo_file_name` …

3
MS SQL Serverのバージンクエリのパフォーマンスを向上させる方法は?
ASP.NET Webサイトで、独自の独立したデータキャッシュを実行し、データが長期間変化しないため、同じクエリでSQL Serverに2回クエリする必要がありません。そのSQL Serverへの初回(バージン)クエリのパフォーマンスを改善する必要があります。一部のクエリは、SQL Serverが使用する可能性のある大量のデータを処理しますtempdb。一時テーブル変数や一時テーブルは使用しないので、SQL Serverはtempdb必要なときにいつでもそれ自体を使用することにしました。 私のデータベースサイズは16Gbですが、サーバーマシンで32Gbの物理RAMを使用できます。 MS SQL Serverのキャッシュ戦略は、同じデータを再度ロードする必要がある場合に、同様のクエリのパフォーマンスを向上させるために、RAMにデータを保持しようとすることを理解しています。さらに、tempdbの代わりに使用可能なRAMを使用して、ディスクアクセスを引き起こさずにパフォーマンスを高速化しようとします。 tempdb SQL Serverに何かを格納する必要があるクエリが来て、十分なRAMが利用できない場合、SQL Serverには2つの選択肢があると思います。 1)キャッシュされたデータをアンロードし、tempdbの代わりにスペアRAMを使用してディスクの書き込みを回避する 2)今後のクエリのためにキャッシュされたデータを保持し、tempdbの使用を開始します。これにより、ディスクへの書き込みが遅くなります。 この状況でSQL Serverがどのような選択をするかはわかりませんが、最初の(バージン)クエリのパフォーマンスのみを考慮し、同じクエリをSQL Serverに再度送信することはないため、選択#1をしたいと思います。 (私は同様のクエリを送信する可能性があります)。 このシナリオのSQL Serverキャッシュ戦略は何ですか? 新しいクエリのtempdbの回避と2回目のクエリの速度の間で、RAMの使用量をどのようにバランスさせますか? SQL Serverを選択#1するように構成することは可能ですか?はいの場合、どのように? 他にどのようにしてすべてのバージンSQLクエリのパフォーマンスを向上させることができますか? SQL Serverのキャッシュ戦略がわからないので、データベースをRAMディスクに配置します。これにより、SQL Serverが常に#1を選択する場合でも、キャッシュされていないデータを高速で読み込むことができます。SQL Serverが選択肢#2を選択し続けると、SQL Serverが利用可能なRAMを少なくしてより多くのtempdbを使用し始める可能性があります(RAMディスクに16Gbを使用した後は16Gbしか残りません)tempdb。 SQL 2008 R2のソリューションに興味がありますが、おそらくSQL 2008、SQL 2005でも同じで、SQL 2000かもしれません。 明確化: そのボックスで実行されている他のアプリケーションはなく、SQL Server専用です。ウェブサイトは別のボックスで実行されます。 Windows Server 2008 R2 Enterprise 64ビット上のSQL Server 2008 R2 Standard …

3
SQLITE:タグと製品の問題
次のことを行うクエリを作成する方法を探しています。 3つのテーブルについて考えてみましょう。 製品:製品リスト タグ:タグのリスト tag_ties:タグを製品に関連付けるために使用されるテーブル 各テーブルについてこの構造を考えてみましょう: 製品: id(int、autoincrement) 名前(varchar、製品名) タグ: id(int自動インクリメント) ラベル(varchar、タグのラベル) Tag_ties: id(int、autoincrement) tag_id(int、タグIDへの参照) ref_id(int、製品IDへの参照) 私が欲しいもの: たとえば、タグID 10、11、および12でタグ付けされたすべての製品を取得します。 このクエリは機能しません。少なくとも1つのタグを持つ製品が返されるためです。 select p.name as name, p.id as id from products p inner join tag_ties ties on p.id=ties.ref_id where ties.ref_id=p.id and ties.tag_id in (10,11,12) group by p.id order by p.name asc
10 query  sqlite  subquery 

3
外部キー制約データを取得する方法
スキーマ全体の外部キー情報(各行:参照テーブルとフィールド、参照テーブルとフィールド)を取得できるクエリを探しています。 私はこれを見つけましたが、必要なすべての情報を提供していません:https : //stackoverflow.com/questions/4389228/sql-for-oracle-to-check-if-a-constraint-exists 私は現在それに取り組んでおり、次の数分/時間で解決策になるかもしれません。しかし、誰かがすでに完全に機能する解決策を持っている場合は、それを知って喜んでいます:)

3
可能な限り一致するものをクエリして順序付け
私はこれらの行に沿ってクエリを書こうとしています: select * from tbl where col1 = 1 and col2 = 2 and col3 = 3 order by ... ; 最初に3つのWHERE条件すべてが一致するすべての結果(3/3)、次に任意の2つの条件が一致するすべての結果(2/3)、最後に任意の1つの条件が一致する結果(1/3)が必要です。 これら3つの結果セットのそれぞれは、によって順序付けされる必要があります(col4, col5, col6)。 単一のクエリでそれを実行できますか? 例えば: サンプルhttp://img708.imageshack.us/img708/1646/sampletableresult1.jpg テストデータを作成するスクリプト: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U')) DROP TABLE [dbo].[MyTable] GO CREATE TABLE dbo.MyTable …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.