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 States
和 Canada
而无需 子句?
在 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/
假设我在 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 States
和 Canada
而无需 子句?
在 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/