From: | Frederic Gaerel <frederic(dot)gaerel(at)chronopost(dot)fr> |
---|---|
To: | Nicolas Baccelli <nicolas(dot)baccelli(at)gmail(dot)com> |
Cc: | pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: Fonctions sur JSON |
Date: | 2015-06-03 11:38:21 |
Message-ID: | CACKqRo-irn-XFBP45OMy89BZ72hVhhWbAfU9o-7N5LaR7_gy-w@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Whaaaa...
je teste
Merci
Je prend aussi les 3 autres remarques... Simplicité, toujours.
*Frédéric Gaërel*
Expert Domaine Transport. Référent PostgreSQL
01 74 22 82 22 | | frederic(dot)gaerel(at)chronopost(dot)fr
[image: Logo Chronopost]
Immeuble Orsud - 3/5 avenue Gallieni - CS 70103 - 94254 Gentilly Cedex |
chronopost.fr <http://www.chronopost.fr/>
Suivez nous sur Facebook <https://fr-fr.facebook.com/chronopost> et Twitter
<https://twitter.com/chronopost>.
[image: DPD Group]
Le 3 juin 2015 10:38, Nicolas Baccelli <nicolas(dot)baccelli(at)gmail(dot)com> a écrit
:
> Bonjour,
>
>
> Avec ce genre de fonction ?
>
> WITH T AS (
> SELECT '{"A":"NULL","B":"NULL","C":"NULL"}' AS accuse, 1234 valeur
> UNION
> SELECT '{"A":"2015-06-02","B":"NULL","C":"NULL"}', 5678
> UNION
> SELECT '{"A":"2015-06-01","B":"2015-06-02","C":"2015-06-03"}', 1011
> )
> SELECT (select max(replace(value::text,'NULL','1970-01-01')::date) from
> json_each(accuse::json) limit 1) as date_accuse, valeur
> FROM T
> WHERE position('NULL' IN accuse::text) = 0
> group by
> t.valeur,t.accuse
> having max((select max(replace(value::text,'NULL','1970-01-01')::date)
> from json_each(accuse::json) limit 1)) < now() at time zone 'edt';
>
>
> J'ai l'impression que cela fait ce que vous voudriez
>
>
> Cordialement
>
> Adoptons des gestes responsables :
> Je vous recommande de n’imprimer ce mail que si nécessaire.
>
> Le 3 juin 2015 10:17, Frederic Gaerel <frederic(dot)gaerel(at)chronopost(dot)fr> a
> écrit :
>
>> Précision :
>>
>> Je suis en version 9.3.
>> Pas de JsonB a disposition
>>
>> *Frédéric Gaërel*
>>
>> Expert Domaine Transport. Référent PostgreSQL
>> 01 74 22 82 22 | | frederic(dot)gaerel(at)chronopost(dot)fr
>>
>> [image: Logo Chronopost]
>> Immeuble Orsud - 3/5 avenue Gallieni - CS 70103 - 94254 Gentilly Cedex |
>> chronopost.fr <http://www.chronopost.fr/>
>> Suivez nous sur Facebook <https://fr-fr.facebook.com/chronopost> et
>> Twitter <https://twitter.com/chronopost>.
>>
>> [image: DPD Group]
>>
>> Le 2 juin 2015 16:51, Frederic Gaerel <frederic(dot)gaerel(at)chronopost(dot)fr> a
>> écrit :
>>
>>> Bonjour à tous.
>>>
>>> J'ai une table contenant une colonne "accusé de réception" sous la forme
>>> d'un json :
>>> exemple :
>>>
>>> WITH T AS (
>>> SELECT '{"A":"NULL","B":"NULL","C":"NULL"}' AS accuse, 1234 valeur
>>> UNION
>>> SELECT '{"A":"2015-06-02","B":"NULL","C":"NULL"}', 5678
>>> UNION
>>> SELECT '{"A":"2015-06-01","B":"2015-06-02","C":"2015-06-03"}', 1011
>>> )
>>> SELECT accuse::json, valeur into tmp_json FROM T;
>>>
>>> SELECT * FROM tmp_json;
>>>
>>> Le principe est le suivant : A, B et C sont des clients qui viennent
>>> positionner leurs accuses de réception spécifiques lors de la récupération
>>> de la 'valeur'.
>>>
>>> Si une ligne a été lue par tous les clients, elle est candidate à la
>>> purge.
>>>
>>> Lors de la purge, je dois supprimer toutes les lignes :
>>>
>>> - qui ont été lues par tous les clients : WHERE position('NULL'
>>> IN accuse::text) = 0 (ici seule la ligne avec la valeur 1011 est
>>> "purgeable")
>>> et
>>> - dont le MAX des accusés de réception ("2015-06-03") est
>>> strictement inférieur à la date du jour : AND .... Là je sèche !!!
>>>
>>> Une idée pour résoudre ce problème ?
>>>
>>> Merci d'avance
>>>
>>>
>>> *Frédéric Gaërel*
>>>
>>> Expert Domaine Transport.
>>> | frederic(dot)gaerel(at)chronopost(dot)fr
>>>
>>> [image: Logo Chronopost]
>>> Immeuble Orsud - 3/5 avenue Gallieni - CS 70103 - 94254 Gentilly Cedex |
>>> chronopost.fr <http://www.chronopost.fr/>
>>> Suivez nous sur Facebook <https://fr-fr.facebook.com/chronopost> et
>>> Twitter <https://twitter.com/chronopost>.
>>>
>>> [image: DPD Group]
>>>
>>
>>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Stéphane Schildknecht | 2015-06-04 15:02:56 | Nouvelles versions mineures |
Previous Message | Michel Payan | 2015-06-03 08:54:42 | Re: Fonctions sur JSON |