問題タブ [aggregate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Linq - 別のクエリの結果を集計する方法
リストの where 句の結果を取得し、その結果セットを取得して、元のクエリの集計から構築されたすべてのフィールドを持つ新しい型を 1 つだけ作成したいと考えています。以下の基本的な例を考えると、2 つの linq ステートメントを 1 つに結合する方法はありますか? 元の場所に行がない場合は、null を返す必要があります。ありがとう!
更新: 私の状況では、元のセットには多くのアイテムがありますが、where 句の後の結果セットは非常に小さいです。2 番目のセットを数回列挙しても問題ありません。また、これらのレコードから値を取得するには、セットで first と last を使用する必要があります。答えによるグループが私にとって最もうまくいくでしょう。集計方法は非常に興味深いものであり、別の用途があると思います。
nhibernate - NHibernate 集計関数 sum() を取得して 10 進数を返す方法は?
sum() で 10 進数を返すことができず、常に小数点を切り捨てて int64 を返します。私は一日中グーグルで検索しましたが、実際の回避策はまだ見つかりません。ProductPurchaseというDBテーブルがあります
QtyPurchased(int) および UnitPurchasePrice(money) 列、
これらは NHibernate を使用して C# POCO オブジェクトにマップされます。QtyPurchase は int で、UnitPurchasePrice は 10 進数のプロパティです。
特定の日の合計購入金額を取得する次の HQL クエリがあります。
select sum(detail.QtyPurchased * detail.UnitPurchasePrice) from Domain.Entities.ProductPurchase AS detail where datediff("day", detail.PurchaseDate, :trading_date) = 0
なんらかの理由で、query.UniqueResult は常に Int64 整数を返し、小数点以下を切り捨てますが、生成された SQL は明らかに小数点付きの正しい数値を返します。誰かがこれを10進数に戻す方法についていくらか光を当てることができますか?
SQL (つまり CreateSqlQuery) を使用すると、10 進数を戻すことができることに気付きました。これは Nhibernate のバグですか?
ありがとうございます
スティーブン・クオ
sql - TSQL での合体とピボット
次のような SQL レコードセットを合体またはピボットする方法がわかりません。
そして、私はこのようにフォーマットしたい
提案と助けをありがとう!
sql - SQL 2つの列から最新の日付を検索し、それがどの列にあったかを識別します
次の構造を持つtblAssetsInUseというテーブルがあります。
スキャンされたアセットIDを受け取り、チェックアウトまたはインされているアセットのテーブルにそれぞれ挿入または更新するSPがあります。ご覧のとおり、datCheckedInはNullである可能性があり、現在使用されているアセットを特定するために使用されます。この手順は完全に機能します。スキャンされる最後のアセットが何であったか、またテーブルに対する最後の操作(つまり、チェックインまたはチェックアウト)が何であったかを判別できるようにしたいと思います。(どの列に関係なく)最新の日付の行を見つけるSQLコードがあり、これを使用して別のアセットビューに結合します。これも機能します。どういうわけか、最新の日付が[チェックアウト]または[チェックイン]列にあるかどうかを確認できる必要があります。
結果のビット値にフラグを立てるために追加できるリテラル値はありますか?
ご協力いただきありがとうございます、
ポール・レイノルズ
sql - 日付間隔を選択し、高速に実行し、結果とともに常に最新のエントリを返す
私はテーブルを持つデータベースを持っており、いくつかのアカウントの口座残高の変化を 3 つの列で保存しています。
1 年の各日についていくつかのエントリが含まれており、5 日ごとに残高を取得したいと考えています。また、アカウント間で分離したい (つまり、2 つの変更が同じ日に発生したが、別のアカウントで発生した場合は、両方を返す)。
問題は次のとおりです。データが利用できない場合が数日 (または数週間) ある場合があります。その場合、データセットの「穴」の前に最新のエントリを返すようにします。これは問題の単純化されたバージョンです。実際のデータベースは大きい (数ギガバイト) ため、データのサブセットを返したい理由はそのサイズです。Oracle と MySQL の両方で動作する必要があるため、プラットフォーム固有のメソッドを使用することはできません。
私の質問は次のとおりです。これをすばやく行う方法はありますか? 仕事を終わらせるクエリを書くことはできますが、多くのネストされたクエリと集計関数を必要としない悪魔の魔法の方法があることを願っています..
mysql - MySQL集約クエリの最適化
MySQLには、ファイルに関する情報を含む非常に大きなテーブル(〜1億レコード)があります。情報の1つは、各ファイルの変更日です。
指定した日付範囲に収まるファイルの数をカウントするクエリを作成する必要があります。そのために、これらの範囲(すべて日単位)を指定する小さなテーブルを作成しました。これは次のようになります。
そして、次のようなクエリを作成しました。
ただし、予想どおり、このクエリの実行には永遠に時間がかかります。これは、MySQLにHugeFileTableを5回実行するように要求しているためだと思います。そのたびに、各ファイルに対してDATEDIFF()計算を実行します。
代わりに、HugeFileTableレコードをレコードごとに1回だけ調べ、ファイルごとに適切なrange_nameの現在の合計でカウントをインクリメントします。どうすればいいのかわからない…。
誰かがこれを手伝うことができますか?
ありがとう。
編集:MySQLバージョン:5.0.45、テーブルはMyISAMです
EDIT2:コメントで求められた説明は次のとおりです
domain-driven-design - 集約ルートに属するもの
これは実用的なドメイン駆動設計の問題です。
概念的には、集約ルートを定義するまで取得すると思います。
Aggregate ルートとして表示されている Employee エンティティがあります。ビジネスでは、一部の従業員が業務関連の違反をログに記録することがあります。
従業員-----*違反
すべての従業員がこれに該当するわけではないので、違反は従業員集計の一部ではないと思いますよね?
従業員とそれに関連する違反を処理したい場合、この 2 つの別個のリポジトリ インタラクションはサービスによるものですか?
最後に、違反を追加すると、そのメソッドは従業員エンティティにあるのでしょうか? 助けてくれてありがとう!
c# - 複数の列でグループ化
LINQ で GroupBy 複数の列を実行するにはどうすればよいですか
SQLでこれに似たもの:
これをLINQに変換するにはどうすればよいですか:
sql - 個別にカウントし、Null値は集計によって削除されます
私はSQLServer2005を使用しています。以下のクエリ(実際のクエリから簡略化)を使用すると、次のようになります。
取得せずに明確なカウントを行う方法はありますか
「警告:NULL値は、集計またはその他のSET操作によって削除されます。」
これが私が考えることができる選択肢です:
- ANSI_WARNINGSをオフにする
2つのクエリに分けます。1つはカウントが異なり、もう1つはnullを削除するwhere句で、もう1つは合計です。
/li>クライアントの警告を無視する
これを行うためのより良い方法はありますか?私はおそらくルート2を下りますが、コードの重複は好きではありません。
c++ - コンストラクターよりも集約初期化リストを使用する利点はありますか?
私は C++ が初めてで、質問があります...
テストアプリケーションを作成して、自分で質問に答えようとしました...デバッグでは、クラスBの初期化により生成されるアセンブリコードが少なくなりますが、リリースモードでは、本当に言うことはできません...初期化を最適化します:(
2つのクラスがあるとしましょう:
利用するメリットはありますか
それ以外の
?