У меня есть таблица записей продаж, которая выглядит следующим образом:
sample_data: ([] Name: `Ann`Ann`Ann`Bob`Bob`Bob`Bob; Item: `Apple`Apple`Bread`Apple`Salt`Salt`Salt; Action: `Buy`Sell`Sell`Buy`Buy`Buy`Sell; Price: 5.00 6.00 9.00 5.00 1.00 1.00 2.00)
Мой конечный результат — получить комбинацию имен и предметов, которые были куплены и проданы хотя бы один раз.
Мой мыслительный процесс состоит в том, чтобы создать таблицу, подобную приведенной ниже, в которой будет собрано количество покупок и продаж для каждой пары «Имя-Предмет»:
Затем извлеките только те пары Имя-Предмет, у которых >=1 покупок и продаж:
fby может быть самым простым способом:
q)select distinct Name,Item from sample_data where({all`Buy`Sell in x};Action)fby([]Name;Item)
Name Item
----------
Ann Apple
Bob Salt
Спасибо за это, я не знал о fby, но выглядит очень круто. Я бы проголосовал за вас, но у меня недостаточно очков репутации.