[ea2224]: / inst / queries / sparseDataMatchPartialField.xq

Download this file

15 lines (14 with data), 581 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
; sparseDataMatchPartialField
(fn [field dataset names limit]
(let [getfield (fn [field]
(:id (car (query {:select [:field.id]
:from [:dataset]
:join [:field [:= :dataset.id :field.dataset_id]]
:where [:and [:= :field.name field] [:= :dataset.name dataset]]}))))
genes (getfield field)]
(map :gene (query {:select [:%distinct.gene]
:limit limit
:order-by [:gene]
:from [:field_gene]
:join [{:table [[[:name :varchar names]] :T]} [:like :gene :T.name]]
:where [:= :field_gene.field_id genes]}))))