क्या यह काम जितना आसान कुछ होगा?
insert into cities (city, state, size)
select city, state, count(*) as size from listings
group by city, state
group by
यह सुनिश्चित करना चाहिए कि कोई डुप्लीकेट नहीं हैं ताकि on duplicate key
की कोई आवश्यकता न हो . योग () + सबक्वेरी चीज़ जो आप कर रहे थे, ऐसा लगता है कि आप बस एक गिनती (*) करने की कोशिश कर रहे थे।
आपको जो विशिष्ट त्रुटि मिल रही थी वह आकार =योग (गिनती) के कारण थी। एक बैच डालने में ऐसा करने का सही तरीका आकार =मान (आकार) होगा, दस्तावेज़ देखें values()
।
संपादित करें:
यदि यह प्रत्येक शहर के लिए एक और प्रविष्टि जोड़ रहा है तो शहर पर एक अद्वितीय अनुक्रमणिका नहीं है और डुप्लिकेट कुंजी पर वैसे भी कुछ नहीं होगा।
यदि आप (शहर, राज्य) पर एक अद्वितीय अनुक्रमणिका जोड़ते हैं तो आप on duplicate key update size=values(size)
पर जोड़ सकते हैं उपरोक्त क्वेरी के लिए और यह प्रत्येक रिकॉर्ड को जगह में अपडेट कर देगा।