PostgreSQL技術週刊第2期:用PostgreSQL解海盜分金問題

萌萌怪獸發表於2018-10-27
PostgreSQL(簡稱PG)的開發者們:

雲棲社群已有5000位PG開發者,釋出了3000+PG文章(文章列表),沉澱了700+的PG精品問答(問答列表)。

PostgreSQL技術週刊將會為大家介紹最新的PG技術與動態、預告活動、最熱問答、直播教程等,歡迎大家訂閱PostgreSQL技術週刊。


最新動態:

本文不談框架、不談架構,就談寫程式碼的那些事兒!後文始終圍繞一個問題的解決方案,不斷發現其中“重複”的程式碼,並提煉出“可重用”的抽象,持續“重構”。希望通過這個過程和大家分享一些發現重複程式碼和提煉可重用抽象的方法。

什麼是聚合?聚合就是把元素按照一定的規則分為不同的組,然後對各組元素進行計算。本文中就為大家分享了兩種PostgreSQL中的聚合演算法,GroupAggregatede 特點是在進行聚合之前先要將資料進行排序,然後進行聚合操作,而且出來的結果是有序的,而HashAggregate的特點是不需要進行排序,在組數值比較小的情況下是比GroupAggregate要快很多,但是需求的記憶體會比較多。

有一篇文章叫做《無往不利:用SQL解海盜分金的利益最大化問題》,其中講的就是在Oracle中用SQL解海盜分金問題,本文中就嘗試在PostgreSQL中解決該問題。這個問題是:有5個海盜分100個金幣,通過抓鬮決定了先後順序,依次提出分贓方案,需得半數以上(含自己)同意才能通過,否則提方案的海盜就會被處死。現要求為第一個海盜提供最佳方案。


推薦專家
專家:王健(雲棲社群暱稱canno

目前在神州飛象做pg相關的運維工作,熱愛pg,正在學習pg核心的相關的程式碼,歡迎大家和我討論,一起共同成長

專家已經在社群釋出了11篇技術博文

最新技術分享:

關注專家個人賬號,掌握一手專家技術乾貨。

熱門問答

視訊回顧

更多交流溝通,請掃碼加入釘釘PostgreSQL技術進階群

b2fcd3c3bd017a76edbd5ceba043a3665ded28b9


相關文章