我正在使用 MS Access 2013 中的食品采购/发票系统,并尝试创建一个 SQL 查询,该查询将返回每个单独食品的最新购买价格。
我对 SQL 的理解是非常基本的,我尝试了以下(不正确的)查询,希望它只返回每个项目的一条记录(因为DISTINCT
运算符)并且它只会返回最近购买的(因为我做了ORDER BY [Invoice Date] DESC
)
SELECT DISTINCT ([Food items].Item),
[Food items].Item, [Food purchase data].[Price per unit], [Food purchase data].[Purchase unit], Invoices.[Invoice Date]
FROM Invoices
INNER JOIN ([Food items]
INNER JOIN [Food purchase data]
ON [Food items].ID = [Food purchase data].[Food item ID])
ON Invoices.ID = [Food purchase data].[Invoice ID]
ORDER BY Invoices.[Invoice Date] DESC;
Run Code Online (Sandbox Code Playgroud)
然而,上面的查询只是返回所有的食品购买(即 中每个记录的多条记录[Food items]
),结果按日期降序排序。有人可以向我解释我对DISTINCT
运营商的误解吗?也就是说,为什么它不只为 中的每个项目返回一条记录[Food items]
?
更重要的是 …
我有一个parcels
当前包含列owner_addr1
, owner_addr2
,的表owner_addr3
。有时,后两个字段中的一个或两个字段为空。我想将它们组合成一个新的字段,owner_addr
上面的每个字段//
都在它们之间连接。
但是如果一个或多个原始列是 NULL,我不想连接//
到结果列。因此,举例来说,如果owner_addr1
是123 4th Avenue SE
和owner_addr2
和owner_addr3
的NULL
,然后我想要的结果列只是123 4th Avenue SE
,没有123 4th Avenue SE // //
(如果我只是做了这会发生CONCAT()
与//
空字符串之间......我只是想添加//
非之间的NULL
列,或将其如果只有一个非NULL
列,则完全退出。
有没有一种简单的方法可以在 Postgresql 中进行这种条件连接,它会遗漏空行?或者我应该写一个python脚本来做到这一点?
我正在尝试在 PostgreSQL 表中存储word/doc 嵌入的向量,并希望能够快速将具有最高余弦相似度的 N 行提取到给定的查询向量。我正在使用的向量是numpy.array
长度为100 <= L <= 1000的浮点数。
我查看了相似度搜索cube
模块,但它仅限于<= 100维的向量。我使用的嵌入将产生最少100 维且通常更高的向量(取决于训练 word2vec/doc2vec 模型时的设置)。
在 Postgres 中存储大维向量(numpy 浮点数组)并根据余弦相似度(或其他向量相似度度量)执行快速查找的最有效方法是什么?