By admin, 14 五月, 2015

A friend of me asked me long time ago: "How can I have a ranking on a result with MySQL?". Now I found some time to write it down:

Lets do first some preparation for the example:

CREATE TABLE sales (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
, fruit VARCHAR(32)
, amount DECIMAL
);

INSERT INTO sales
VALUES (NULL, 'apple', 12.75), (NULL, 'orange', 1.89), (NULL, 'pear', 19.23)
, (NULL, 'banana', 4.25), (NULL, 'cherry', 123.75), (NULL, 'plum', 23.15)
;

Now lets query:

标签

By admin, 14 五月, 2015

开源软件,字面上的简单解释就是源代码开放的软件,意味着第三者可以掌握软件的核心技术对其进行再创造,这有利于人类社会的协作和发展。开源软件又称为自由软件,是一场上世纪80年代开始的运动,因互联网而广泛传播,因Linux而声名鹊起。理解软件的自由前提是有很强的法律意识,有些软件虽然源代码开放,但不允许别人修改和再创造。就好比专利,虽然公开了技术,但一段时间内不允许别人使用,它一方面保护了原创者的利益,成为创新的一种激励机制;另一方面阻碍了社会发展的进度,许多公司利用专利制度去阻止别的公司发展。自由软件就是要既公开技术,又允许别人利用和发展。由于国人版权意识薄弱,因而大多关心的是是否可以获得软件代码,其它法律问题通常是忽略的。就好比只关心买来的软件是否可用,而不在乎是否正版。开源对于需要“祖传秘方”的传统社会和行业是一个冲击,对于公开自己的技术被视为一种无私的奉献,也意味着比较让人接受。通常大部分人都乐于见到无私奉献的人和事,但自己不会去做并且不希望身边的亲人做。

通常,成功的开源软件需要有技术出众的作者,这样才能在业界做出名堂,为人所知。有些开源软件仅有一个人维护,有些则可以达到成千上万人,取决于软件的复杂度和应用范围。有很多开发者的软件当然是成功的,但只有一个人写的软件也可以很成功,事实上很多成功的软件都是一两个人写的。