我有一個最大的n-per-group問題,我試圖解決。我一直在閱讀現有的解決方案,但沒有一個看起來與我正在處理的怪癖相匹配。SQL最大的n-per-group與多個表上的斑點數據
場景:比方說,有一家石油公司,它有一個油井收集。每口井都有許多油罐。每天都有人讀每口井。有時他們也讀取坦克的讀數,但坦克讀數不太頻繁,可能會分散數天。
所有井和水箱的讀數都記錄到數據庫中,按日期組織。
CREATE TABLE "wellReadings" (
"id" INT PRIMARY AUTO_INCREMENT,
"date" DATETIME,
"wellName" VARCHAR(10),
...
);
CREATE TABLE "tankReadings" (
"id" INT PRIMARY AUTO_INCREMENT,
"date" DATETIME,
"well" INT NOT NULL,
"tankName" VARCHAR(10),
...
);
問題:對於任何給定以及讀取(在wellReadings表)在任何給定的日期,我想找到油箱的讀數(在tankReadings表)所有與井相關的坦克,在同一天採取。如果某個特定的坦克在當天沒有閱讀,我希望在該日期之前閱讀最近的閱讀材料。
到目前爲止,我一直在嘗試使用連接和subquerys,但一直無法將結果縮小到最近的坦克讀數(我的測試查詢不斷給我所有發生在或之前的坦克讀數良好的閱讀日期)。相關的子查詢可能有效,但我的數據庫不支持它們(SQLite)。
我不太看tankReadings如何與給您所提供的列wellReadings。 – Neil