Q(kdb)中如何用"IN"查询?

How to query with "IN" in Q (kdb)?

假设我在 KBD 中有一个名为“Automotive”的 table,具有以下数据:

Manufacturer    Country             Sales Id
Mercedes        United States       002
Mercedes        Canada              002
Mercedes        Germany             003
Mercedes        Switzerland         003
Mercedes        Japan               004
BMW             United States       002
BMW             Canada              002
BMW             Germany             003
BMW             Switzerland         003
BMW             Japan               004

我将如何在 Q 中构建查询,以便我可以使用 OR 获取匹配 United StatesCanada 而无需 子句?

在 SQL 中,它看起来像:

SELECT Manufacturer, Country from Automotive WHERE Country IN ('United States', 'Canada')

在此先感谢您帮助这个 Q 初学者!

kdb中基本相同。您编写查询的方式取决于数据类型。请参见下面的示例,其中制造商是一个符号,国家/地区是一个字符串。

q)tbl:([]manufacturer:`Merc`Merc`BMW`BMW`BMW;country:("United States";"Canada";"United States";"Germany";"Japan");ID:til 5)
q)
q)tbl
manufacturer country         ID
-------------------------------
Merc         "United States" 0
Merc         "Canada"        1
BMW          "United States" 2
BMW          "Germany"       3
BMW          "Japan"         4
q)meta tbl
c           | t f a
------------| -----
manufacturer| s
country     | C
ID          | j
q)select from tbl where manufacturer in `Merc`Ford
manufacturer country         ID
-------------------------------
Merc         "United States" 0
Merc         "Canada"        1
q)
q)select from tbl where country in ("United States";"Canada")
manufacturer country         ID
-------------------------------
Merc         "United States" 0
Merc         "Canada"        1
BMW          "United States" 2

在这里查看如何使用 Q-sql:https://code.kx.com/q4m3/9_Queries_q-sql/