Andomar cevabı iyi biridir ve olması gerektiği Bu soru için seçilen cevap neredeyse kesin olarak kalıyor.
CREATE TABLE DoughnutShopCountsByHood AS
SELECT Neighborhood, COUNT(*) AS DoughnutShopCount FROM
( <<crazy-set-of-painful-subqueries-removed>> )
GROUP BY Neighborhood ORDER BY DoughnutShopCount DESC;
: Ben Andomar çözümüyle içine ayakkabı çekeceği çalıştı
Öyle çaresizlikten, şu kod gibi bir şey kullanarak çalıştı, Koşuyordum karmaşık bir sorgu hızla hantal hale geldiği sonucuna varıldı ... dedi
Önemli olan ilk satırda "CREATE TABLE ... AS" bölümüdür. Birkaç adımın ilki olmak için bunu planlamıştım, ama en azından Firefox'un SQLite Manager'ında gülünç uzun süren bir sorguyu yeni bir tablonun içine döktüğümde, RDBMS'nin otomatik olarak bir indeks sütunu eklediğini fark ettim. Bu sütun, bir "rank" sütunu olarak güzel bir şekilde iki katına çıkar.
Bunun gerçekten eski sorudur gerçekleştirmek, bu nedenle bu cevap muhtemelen herhangi upvotes almazsınız ama benzer bir meydan okuma ile başkası yardımcı olabilir benim kişisel deneyim durumda göndermeden ediyorum.
Orijinal cevap için Andomar'a tekrar teşekkürler - Çoğu insan için en yararlı olanı hayal ediyorum.
Basitleştirilmiş bir örnek sağladığınızı anlıyorum - ancak yaşı veya yaşını değil, doğum tarihini veya yılını saklayın. Yaşı kendinde saklamayın. Bunu birkaç kez yapmış olmasaydım, bu yorumu yazmazdım. – Tim
İyi nokta, yaş değişiyor değil mi? –