как распарсить json и найти дубликаты в postgresql
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 16.08.20 14:06
Оценка:
SELECT "Id", "MobileAppRegistrationIdsStr"
FROM public."Customers";


MobileAppRegistrationIdsStr :

[{"DeviceId":"d1l1Wh6YSb8","RegistrationToken":"d1l1Wh6YSb8:APA91bEbSfIkh-waOH2bYUPUDbKSG2PHFLmHvmh-VaNGlWlhbLSTIQeWSGKOmzOwrJ_sQvyEEe9a_4pSMPAppfRNaMbjwvpVXHrPtBQVbiYb_qTF34OKpa2CcP59XHLgt6d2DuLK0jhG"},{"DeviceId":"edV8_h828HA","RegistrationToken":"edV8_h828HA:APA91bHZx4Mo18Sw3zw1tfNT4Wq7R1xaBQlc7AyxqUnANoGDIkaFDB9RQEuEpJ6aq5X_Ft-6v80tqz2lalru8GmnjGRQiLa1CqBYzMCeWjBYLkq-mHeexX4HhnsqLunjVU7lS7XPZfvV"},{"DeviceId":"fCWj4dMC4RE","RegistrationToken":"fCWj4dMC4RE:APA91bH8n1c61ggHY7bmCs9_QyLUtFC_A1SAgyK3_sJok8D9KkX3Kb3RF_XQBLWxZ5FhspKQE3-OnAK6d31B_zLTvmiDWZKLy1BrxXpSjCKGKTXNPttkwbfbaTVrS4zteVtTuXX1yWu1"},{"DeviceId":"eeWSHtqBveY","RegistrationToken":"eeWSHtqBveY:APA91bFKiiW4IJLkRVE1yxS5oVl_iMMBJY0zSTIt9j13Xml8ufW3dPKGOcVDiNwd0UtY6y05rhXXTODPnO4C14FFQAyax6lwO27ny7FK7Pur28jNhcAhsN3w944KsYruiWbCBxZZuCUN"},{"DeviceId":"c1VrOwoRGi4","RegistrationToken":"c1VrOwoRGi4:APA91bF1Si8PMddZ0nrL7_W_4r3SRsQLUnYnNuihemjfCkgF08yTRLdpzttJNIOAMfv8LgoZ_uXWyA_3Yikq_NHfzluafAkShEvF9tNYt91GgUnLZ4MNm19VDYZe3fioDYz7nb7pD532"},{"DeviceId":"fSTzzVw2tfE","RegistrationToken":"fSTzzVw2tfE:APA91bESwNKFhKw6uuaoKYweKT8gLsFAm3U_wt17dEMgjtpM675j0lCboiesasv_sD1Bq5hFMRqBSPrHWlwUyeEv31NQ1_a2fqccdjG9S0ppnXb2_xtmOTHdmU0MDOebzlKAHvsU0ovL"},{"DeviceId":"fGXxONinxf4","RegistrationToken":"fGXxONinxf4:APA91bFLq3JtqHvbI5gNXCHBKRopwOEMFIKvCZFkkq2sE0ZkkhXcnKKjmqjD0VuAru_fypIUar0K8qjF6eY2NcBlKmrcfh3PHTk5oyPMZMpbJLr6DdUxcgi83kJMw3NoNEhwVYIM5K00"},{"DeviceId":"dmPuRla7vwQ","RegistrationToken":"dmPuRla7vwQ:APA91bHcOQxs30qBbLfk9tDSxiAo3sdBNYho8r1WLW0n4Z83FKHXHec7i1VMsJ7YcjJ8-Id-eRrjCj-D4fLDtisBfZ4T3n342SLw-x7WDOgPOYR0wAEIPvwVoTK7ZgrowrKjv9vzYmRt"},{"DeviceId":"dy1XjP8_2KI","RegistrationToken":"dy1XjP8_2KI:APA91bHqSMI-PTtxS3U-m_7WWLGCL7nUirO3uWvoVGBil1iOA2RN1QTITAQi9qHPMVrmdfNcEsczYqnBvd5wlP8z1V2DC81vACnjchbgZUrUwT3Crw9tAH3wtpIcdedakHVKo0bFIJca"},{"DeviceId":"eVZ8ff4dhNw","RegistrationToken":"eVZ8ff4dhNw:APA91bGTtm9kMbC8aynv06LhOUJ7ihZgGn1BmhyMZTXu_-gGduiE4ppkbV45dLbxdviUuowvvSa3dHVGEhuyJvln8WQygHEhFUnHyeTchH52rF2N1OHHaZNpmPYOW0Cn0F7sF_WxKnyj"},{"DeviceId":"ca-IUfYDNpg","RegistrationToken":"ca-IUfYDNpg:APA91bGbmILWEy5brmhTG6OFxqo4SEKLQklbeB8ICa1WnMlZ_YMNAjrnK26sayQGFyfRqAoKaih8F2Je478IFzrWbrenGdiwSqy5pMcta8UQyus2Uco9zC6gkdkSh_5jllf7AKX1b2Rg"},{"DeviceId":"ehlIOH01R70","RegistrationToken":"ehlIOH01R70:APA91bGVTeP26KJD-kSPF1bVJHnrblugWTtfVGXSwBk6oKFsr06yHjJhFySOyuHUANRAMP9QLqqfP0r9j3Rp0HkbtkyYjvbzRJevKWQs6gkwaX0XLOlw6VtWIWQyOAhjNfAul6aPwsG2"},{"DeviceId":"c9HwTzw3oAo","RegistrationToken":"c9HwTzw3oAo:APA91bFlBaWbvckL2lnDT-6tB737ib3ID-rZiyGTbwIUAjdjBu6uutYjJuCfVRvtLgZ6-TpDkMoKqsGij1GrPMRkIFjU1qEwTFEQ4QIabmxBxPGWrcIn_f346gJCtJ_Ya8u7XizPZf7R"},{"DeviceId":"fMeEwn1ELGI","RegistrationToken":"fMeEwn1ELGI:APA91bFpXnhaNn8mej109lA5aAjdivHYjqvENZ5tDmy4aq9ezf3LAtupI0bEuR9_7fGZSwr070NoJk_idj2W9igoS07lw292kf33CkMqXwyWrIZzmhHDgC2L-9JLBBIPB0JG3DhDgQB_"},{"DeviceId":"cV9lE-LCpRQ","RegistrationToken":"cV9lE-LCpRQ:APA91bECPbXBygVuigCWO1GwVlhxrHkaRTuTo_-XVpUiJm2khktG61l02hAenFlR_iVByRwJWnBEKjEy-VA87CL92t9ZH3RuoRGQ162AJHvpOr39DZP3mdZVZyoqBjA9kVnxhm7koGSv"},{"DeviceId":"fYU2kzYeEd4","RegistrationToken":"fYU2kzYeEd4:APA91bFcVO48gTjKZ_-cyxoF9HX2vMELoKbUUqx5-WY23eh2mMxArq-qDeIi_3LDKCglnQBaVfIHi02ollykhmdk0vyqoteqN3zHfxT80Hz7skhpZqbOcWIKFlg77aBj2y-tnPujRKbC"},{"DeviceId":"dIffQQJ1Dds","RegistrationToken":"dIffQQJ1Dds:APA91bFwTFOT12EBEFSV4tPU25pI2EtR6LUAE2EtswlBLUGZmfLg4gknENWHNLXslMM-B5P82GmA-fuqc-_3Xd19K6jl-aSPfDSqdNAxc_ympPPVpbVSUK2WrkbAt032SV1tqFej4rk6"},{"DeviceId":"fsvjOAynLWc","RegistrationToken":"fsvjOAynLWc:APA91bG8SGzkMxCnnYEnRW79pcukUAeae4p2A2-NJq4qUmn4RAIFmP_48PC2sOWfMcgVv0BxJdb2QtTYMPy2iZSC4DzVn70u3AX01OjUdk-OaBzoHjD3gTN--7YW5lX7XzGksAT7Nbgp"},{"DeviceId":"d0jvY2iRn9M","RegistrationToken":"d0jvY2iRn9M:APA91bExb4ufZ_pogqPJvGsDWC7vAMRdhJ9H7d95UhaUlbxFLZ57HQxNshSzF1okInp5SjDJdqPDc6V1YJQOGalMGdOTffrqA9V9yzS9QQqHOdZJz6uYOOJ8eKLzSbbUaFO_HxkDayRr"},{"DeviceId":"c62LSVCUKpE","RegistrationToken":"c62LSVCUKpE:APA91bG3DtT5t-6OZVhq-ws_MqiWqr5hqDKfKqfBPlP8ExIhtq2P8xz8JQNV7hpISpGockd1zO0ZWNdoez8nkt1U8ikSUoR9XwNoJuy_craTC1UprvNVQJULscH-ZJ0W2zjlOj73ZIF3"},{"DeviceId":"fsSrLTwM2QY","RegistrationToken":"fsSrLTwM2QY:APA91bFVOQ3eHfxxUS8jMgRwM10VnMTsTTgjmyPBzCMyOx9SqDuSI2NuK4oTl55-vmw5J1qaYj7zrB8rU7bgHPIMLPz7itslKEYp4N1tMZSU8iZc3ru_X8tNxdYQRLPz24dHcsVH4405"},{"DeviceId":"caDVgmyORSU","RegistrationToken":"caDVgmyORSU:APA91bE3TZkp7I6TX6zJSUhNsA7qCiI1RLgVwthXDmUEE-oWopV4PuwAQQTLQbzrTEg2_cT5TT9JaOAkFTVS4VAI-OaHfSBwBtZIfiigg4ihdqwgK4D9PqC_IWEsOnnE1yHhipv0RAzy"},{"DeviceId":"dwqfDsO1gO8","RegistrationToken":"dwqfDsO1gO8:APA91bEz7vx0_fZ38bRJWV5on7psZQcItbJGmLHkiW0abhjpjOSfUOBOZfotpP5pZl3OroqxQFBgg7EDoLqsQf3F3Hp0oJgwX7kY8zV6q22PFNCOu96f_Lav7lD7w38DxYnDgUsHYohJ"},{"DeviceId":"dOFZQsUJHfI","RegistrationToken":"dOFZQsUJHfI:APA91bFnMSNCdYBFm6RNHPzWS2i2D9RG35AHzteue8h8VZMEI_xvBoFH_TsZG5Aqlc8xEAfk_-mu7J-vqkw9uJEWoXNZgDHjr5vaD5S-FoTfxibuPcwJvFGMrW8bB-kKiYy15pnQPErT"},{"DeviceId":"fMEpBb9oF9E","RegistrationToken":"fMEpBb9oF9E:APA91bFHjuLSO30K3Lw0HjNXxmT9y8efIClQoi6h55vrM_UJYHGbqlWqsIUXX7jMPdCHsefYR6I3AhY9Nll1yxgN1xoGE1B_6k7x9ef3M5x360wJMCLxL7qz472pj6kYl3_bRDYNrN3u"},{"DeviceId":"dwlN79XidmU","RegistrationToken":"dwlN79XidmU:APA91bH8Pcy_wEtHaaqHjkHBPEADFYrxPbwvQBdJg-5-VZMSwWnRXVi97g57LVjw4OgPqyU5Ju4wAS6W75hNiwqI2EsYpjeBlpKGMQx_RKm0TbZlfylYjub3fj8KEIRUzW6Fz0NKKeZb"},{"DeviceId":"eTDXqCnMqjc","RegistrationToken":"eTDXqCnMqjc:APA91bEXK6EsA9OjlYhjgq74JPlnA3ns8wC1tsJ8PxKJ55ooJ8uQy1z1oRFvgcgmcxnSUC2d6ogfQzsAAJ3YdaIofbNqyJ4W0P4xW0P50csT0__clnWjVIKdYCumvV2OaTHvC0o0PU0H"},{"DeviceId":"dKJHiUyxqJY","RegistrationToken":"dKJHiUyxqJY:APA91bEmjxCJNq_uKCXAOC8uBZm4UUHNCHkACPGeLZDidUFLn5yf4af3onoOSBdcpwgWF4unJX8XRwN_ifP0TQgFHrhXThduVieUKMrwCc-NHkvqQAvPccpVjxY3Gs7ikywK13vy2kiN"},{"DeviceId":"dAX3WZdk7bA","RegistrationToken":"dAX3WZdk7bA:APA91bFzyASRu0h-KpDBff3oW42vKLzFGRmMZaRF5fWJ8p0LwEwcjZr429hHZyRLJHXv1Wlv69rF3_1mYMKuNiw2-Q848_vhCIot8gnB1k8_V4ifjKO09VOqXQOFeqjGHblylP3iYOQ7"},{"DeviceId":"dsHy-QYOaKw","RegistrationToken":"dsHy-QYOaKw:APA91bHfjqqsNrM7KnICbQ1kaHbEM77g_qhICquiHsHKP3MJvKqdi-RlmlNVX6hE_vXHJAA79SLfG76tAQ8ORKVVh1jG6_dOvNP3jzPBsEzrbaIQ5iu7VX70OTF3madBzcrmD7134MlG"},{"DeviceId":"flbD7ztxbfc","RegistrationToken":"flbD7ztxbfc:APA91bEpJPufzGQ038JGg_tFvvrPxGF39ugSh0ZJcUKy_wHMGDAu4uY2_ODSw4Esddd59P_xY8_7p24tqT3ydV3kAwXHoW2TrZfyNZ2yRDr2tbkMNzdVzljqu5E5XrKFKJNUTdGYDuK9"},{"DeviceId":"dAJ_BIJEQfSPCQtnRPHZNg","RegistrationToken":"dAJ_BIJEQfSPCQtnRPHZNg:APA91bFcXpSqUtDXzJwfKDqoqe9nGFFsjyzqDaFeLdDPO5cZCauwdJrm9_TbSzpdTb8foWBfq7CzcbRr6skKrZRJVNJJ4iB_G-wTCjpQp7Pw-FRJcwDzFwK9bauwASw5FKbnH3bNXirJ"},{"DeviceId":"foDlVFclobU","RegistrationToken":"foDlVFclobU:APA91bG9ub0tI7zuTncDr6Osei6rd3uTsrYdGRTDVCiPeCCemrK5WD6wor6n56y2ntISR4nbs3E70Z0g6j_a7544An2S3wvlD_4VwkQeFpNJ7Iejhz-fQLXNoje0PHpmNW8XKl-fIiCB"},{"DeviceId":"f3Nx8TgUSFGBMb8eTI3t85","RegistrationToken":"f3Nx8TgUSFGBMb8eTI3t85:APA91bHQZ68uCPruHCHhkx25-iQKKR5ZyeyhelflEyfVQdSoar4OODxKzATKpYCVo_jxHu_zmPuA-SkifaXnEQ7NFq78NH48S7aI-zsTIdSTcci9tG_FtNCxnH6UTpNhmDb6zWOlmiih"},{"DeviceId":"fxHsSj4n4e0","RegistrationToken":"fxHsSj4n4e0:APA91bGjPBy2PrK2NB6Q2dnp9coZer8D2EJauHIayOyGUle_IavRK-VftHG6_m9D9P7tnlDzSKuR-MRMC17IFzUYIcQtqHR8uCN_WuAIpg-6aIA9jEcY-OVdmo4P-Qc1043vxz9ogkmm"}]



как написать запрос который покажет дубликаты DeviceId ? причём пройти нужно по всем "Customers"
Re: как распарсить json и найти дубликаты в postgresql
От: BlackEric http://black-eric.lj.ru
Дата: 16.08.20 15:02
Оценка:
Здравствуйте, dsalodki, Вы писали:


D>
D>SELECT "Id", "MobileAppRegistrationIdsStr"
D>FROM public."Customers";
D>


Вам sqlем нужно? Какая версия постгреса? Там в 12 куча ништяков для работы с json добавилась.
https://github.com/BlackEric001
Re[2]: как распарсить json и найти дубликаты в postgresql
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 16.08.20 18:02
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, dsalodki, Вы писали:



D>>
D>>SELECT "Id", "MobileAppRegistrationIdsStr"
D>>FROM public."Customers";
D>>


BE>Вам sqlем нужно? Какая версия постгреса? Там в 12 куча ништяков для работы с json добавилась.


да, 12я
Re: как распарсить json и найти дубликаты в postgresql
От: Danchik Украина  
Дата: 16.08.20 20:39
Оценка:
Здравствуйте, dsalodki, Вы писали:


D>
D>SELECT "Id", "MobileAppRegistrationIdsStr"
D>FROM public."Customers";
D>


D>как написать запрос который покажет дубликаты DeviceId ? причём пройти нужно по всем "Customers"


А что тут такого необъяснимо сложного?

SELECT c."Id", json_extract_path_text(c."MobileAppRegistrationIdsStr", "DeviceId")
FROM public."Customers" c
GROUP BY c."Id", json_extract_path_text(c."MobileAppRegistrationIdsStr", "DeviceId")
HAVING count(*) > 1
Re[2]: как распарсить json и найти дубликаты в postgresql
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 17.08.20 05:53
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, dsalodki, Вы писали:



D>>
D>>SELECT "Id", "MobileAppRegistrationIdsStr"
D>>FROM public."Customers";
D>>


D>>как написать запрос который покажет дубликаты DeviceId ? причём пройти нужно по всем "Customers"


D>А что тут такого необъяснимо сложного?


D>
D>SELECT c."Id", json_extract_path_text(c."MobileAppRegistrationIdsStr", "DeviceId")
D>FROM public."Customers" c
D>GROUP BY c."Id", json_extract_path_text(c."MobileAppRegistrationIdsStr", "DeviceId")
D>HAVING count(*) > 1
D>



ERROR: column "DeviceId" does not exist
LINE 1: ...xtract_path_text(c."MobileAppRegistrationIdsStr", "DeviceId"...


там иногда null вместа массива json, может поэтому.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.