कुछ इस तरह चल रहा है:

SELECT user_id, username FROM `table` GROUP BY user_id HAVING COUNT(user_id) = 1

लेकिन बीक्यू कंसोल शिकायत करता है कि username न तो समूहीकृत है और न ही एकत्रित है। मैं देख रहा हूँ sql">यह पोस्ट जो बताती है कि एक से अधिक बार दिखाई देने वाली पंक्तियों को कैसे हटाया जाए। मुझे लगता है कि यह त्रुटि संदेश इसलिए है क्योंकि बीक्यू में कोई प्राथमिक कुंजी या अद्वितीय नहीं है? मैं इसके पास कैसे आ सकता हूं? मैं केवल user_id द्वारा दोहराई गई पंक्तियों को समाप्त करना चाहता हूं।

0
bli00 29 जुलाई 2021, 03:50

2 जवाब

सबसे बढ़िया उत्तर

मैं सिर्फ user_id द्वारा बार-बार पंक्तियों को खत्म करना चाहता हूं।

नीचे करना चाहिए

SELECT user_id, ANY_VALUE(username) as username
FROM `table`
GROUP BY user_id
2
Mikhail Berlyant 29 जुलाई 2021, 00:58

यदि आप प्रति user_id एक पंक्ति चाहते हैं, तो आप केवल एक एकत्रीकरण फ़ंक्शन का उपयोग कर सकते हैं जैसे:

SELECT user_id, MAX(username) as username
FROM `table`
GROUP BY user_id
HAVING COUNT(user_id) = 1;

हालांकि, मैं इसके बजाय QUALIFY का उपयोग करने का सुझाव दे सकता हूं:

select t.*
from table t
where 1=1
qualify count(*) over (partition by user_id) = 1;
0
Gordon Linoff 29 जुलाई 2021, 01:04