Hi, Btw, how does your first/last differ from min/max?
Sent from my iPhone > On Oct 3, 2015, at 5:43 PM, Roberto Spadim <[email protected]> wrote: > > nice, it's like two tables and run optimized queires in each table > i will consider this as a solution > > if i need flexviews (materialized views) with this first / last function, > could this use the window functions of shard query? sorry i didn't tested > flexview + shard query yet > > > 2015-10-03 20:55 GMT-03:00 Justin Swanhart <[email protected]>: >> Hi, >> >> If you only need first/last values, and your lists are short (smaller than >> max_allowed_packet, given group_concat_max_len is max allowed packet) then >> group_concat works fine. >> >> Window functions work /on the result set/ itself. They are kind of like sub >> select over the entire result of the SELECT statement, something a subquery >> in the SELECT clause is unable to do. As such window functions are not >> usually combined with GROUP BY. >> >> This is because window functions let you see the detail and the summary at >> the same time. They are kind of like spreadsheet expressions in that way. >> >> For example: >> SELECT date,value,last_value(value) over (partition by date order by value >> asc),first_value(value) over(partition by date), >> sum(value) over (partition by date), >> lag(value,2) over (partition by date) >> From table >> >> Shard-Query always stores the resultset in a table, so it can update the >> table for each window function result, which is calculated by a query. You >> can look at the wf_* functions in shard-query for an implementation of each >> window function. You could even add your own if you like. If there is >> interest I can make that pluggable. >> >> You can see lots of examples in the test directory too, and s simple test >> data set. >> >> --justin >> >> Sent from my iPhone >> >>> On Oct 2, 2015, at 8:26 PM, Roberto Spadim <[email protected]> wrote: >>> >>> hum i'm thinking about the problem >>> for example if we have an COUNT(*) or a SUM(value) or MAX(value) or >>> MIN(value) or anyother functions >>> shouldn't be more rational allow the 'single thread' query execute and use >>> the GROUP_CONCAT function? >>> ok it's not multi thread, but could the group_concat with limit 'optimize' >>> the shard query or single queries like this? >>> >>> 2015-10-03 0:10 GMT-03:00 Roberto Spadim <[email protected]>: >>>> nice :) >>>> >>>> how it's "rewrite"? >>>> >>>> 2015-10-02 22:25 GMT-03:00 Justin Swanhart <[email protected]>: >>>>> Hi, >>>>> >>>>> You could use Shard-Query. You don't need to shard the database, you can >>>>> point shard-query at one database. It supports WINDOW functions. >>>>> >>>>> select >>>>> date, >>>>> FIRST_VALUE(value) OVER (ORDER BY value ASC), >>>>> LAST_VALUE(value) OVER (ORDER BY value ASC) >>>>> FROM some_table AS a >>>>> GROUP BY date >>>>> >>>>> --Justin >>>>> >>>>>> On Fri, Oct 2, 2015 at 6:12 PM, Roberto Spadim <[email protected]> >>>>>> wrote: >>>>>> Hi guys >>>>>> I have a problem and a possible solution, that i think is relative easy >>>>>> to develop (i didn't tested but i think the source is easy to change) >>>>>> >>>>>> i have some queries like: >>>>>> >>>>>> >>>>>> SELECT >>>>>> date, >>>>>> (SELECT value FROM some_table WHERE date=a.date ORDER BY date ASC LIMIT >>>>>> 1) AS first, >>>>>> (SELECT value FROM some_table WHERE date=a.date ORDER BY date DESC LIMIT >>>>>> 1) AS last >>>>>> FROM some_table AS a >>>>>> GROUP BY date >>>>>> >>>>>> >>>>>> i want to "convert" the complex sub query, to a agregate function, and i >>>>>> thinking about group concat: >>>>>> from mysql docs: >>>>>> >>>>>> GROUP_CONCAT([DISTINCT] expr [,expr ...] >>>>>> [ORDER BY {unsigned_integer | col_name | expr} >>>>>> [ASC | DESC] [,col_name ...]] >>>>>> [SEPARATOR str_val]) >>>>>> >>>>>> we have ORDER BY >>>>>> if we could include a "LIMIT" clause, i could rewrite this query to: >>>>>> >>>>>> SELECT >>>>>> date, >>>>>> GROUP_CONCAT(value ORDER BY date ASC LIMIT 1) AS first, >>>>>> GROUP_CONCAT(value ORDER BY date DESC LIMIT 1) AS last >>>>>> FROM some_table AS a >>>>>> GROUP BY date >>>>>> >>>>>> >>>>>> i know that i could have stats tables / materialized views (with >>>>>> flexview, i already tested :) ), but i want something more "easy to use" >>>>>> and not "very fast", just a "feature" to solve small problems >>>>>> >>>>>> >>>>>> it's a nice idea? does anyone have this "problem" and solve with other >>>>>> solutions? >>>>>> >>>>>> -- >>>>>> Roberto Spadim >>>>>> >>>>>> _______________________________________________ >>>>>> Mailing list: https://launchpad.net/~maria-discuss >>>>>> Post to : [email protected] >>>>>> Unsubscribe : https://launchpad.net/~maria-discuss >>>>>> More help : https://help.launchpad.net/ListHelp >>>> >>>> >>>> >>>> -- >>>> Roberto Spadim >>>> SPAEmpresarial - Software ERP >>>> Eng. Automação e Controle >>> >>> >>> >>> -- >>> Roberto Spadim >>> SPAEmpresarial - Software ERP >>> Eng. Automação e Controle > > > > -- > Roberto Spadim > SPAEmpresarial - Software ERP > Eng. Automação e Controle
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp

