Could you retry with 2.0-rc1. Should fix the  behaviour of your latest
query 4/5
Il 18/dic/2014 21:55 "syshex" <[email protected]> ha scritto:

> Forgot to mention that ! So sorry,
> Version   2.0 M3 on linux
>
> On Thursday, December 18, 2014 7:06:16 PM UTC, Enrico Risa wrote:
>>
>> Hi syshex
>>
>> which version of ODB do you have ?
>>
>>
>>
>> 2014-12-18 18:32 GMT+01:00 syshex <[email protected]>:
>>>
>>> Hi everyone.
>>>
>>> Have a schema that goes somewhat along these lines :
>>>
>>>  ( Institute )  <---owner --- ( Contract )  --- hired ---> ( Company )
>>>
>>>  I'm trying to create an SQL query that shows all companies that have
>>> contracts with a particular institute and tells me how many contracts each
>>> company has. I've tried several different ways , but probably due to lack
>>> of experience I'm just not being able to get it.
>>>
>>> I've tried with traversal and other, but I basically got to this point
>>> now :
>>>
>>> 1- With this query I can get all companies that have a contract with a
>>> particular institute
>>>
>>> select
>>> EXPAND(in('owner').out('hired'))
>>> from Institute where itemid = 47
>>> limit 10000
>>>
>>> It gives me the list of all companies , with an overall record count of
>>> 162.  (this is important, the record count!)
>>>
>>> 2- next I try to expand that query to start grouping by and counting :
>>>
>>> select
>>> EXPAND(in('owner').out('hired'))
>>> from Institute where itemid = 47
>>> group by description
>>> limit 10000
>>>
>>> I was expecting to get a list of fewer records ( because some companies
>>> have multiple contracts with this Institute ) . But what I got back was  0
>>> Records
>>>
>>> I though : OK , the EXPAND function is ran after the group by  and
>>> therefore the queries being grouped by at that point have no property named
>>> "description", just the id .
>>>
>>> 3- Instead of group by, I though : let me try the order by clause to see
>>> what happens
>>>
>>> select
>>> EXPAND(in('owner').out('hired'))
>>> from Institute where itemid = 47
>>> order by description DESC
>>> limit 10000
>>>
>>> I get a list of 162 records again , all ordered perfectly , showing me
>>> several repeated records , therefore, the several times a company was hired
>>> by that institute.
>>>
>>> 4 - Because I have a list of 162 records with this query, I though about
>>> using it as a sub-query of another select statement, and perform the group
>>> by and count() with that select.
>>>
>>> select
>>>  description, count(*) as hiredTimes
>>> from (
>>>   select
>>>   EXPAND(in('owner').out('hired'))
>>>   from Institute where itemid = 47
>>>   limit 10000
>>> )
>>> group by description
>>> order by hiredTimes DESC
>>> limit 10000
>>>
>>> It returns me 112 records , of which none has a hiredTimes > 1, which
>>> tells me that for this select only 112 records were evaluated.
>>>
>>> 5 -  I decided to try running this previous select without the group by
>>> clause, just to make sure
>>>
>>> select
>>>   *
>>> from (
>>>   select
>>>   EXPAND(in('owner').out('hired'))
>>>   from Institute where itemid = 47
>>>   limit 10000
>>> )
>>> limit 10000
>>>
>>> I get a list of records, but only 112 of them .
>>>
>>> I must be missing something.  Should I by going about this in a
>>> different way ?
>>>
>>> Thanks much for your help.
>>>
>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to