SQL原來是如此使用

2021-08-30 09:55:17 字數 1476 閱讀 7097

之前以為sql就那點東西,很容易掌握。

這些天我在做我們**的年度運營資料統計,統計的內容很多,也很複雜。經過幾天的折騰,我領悟了sql的思想。

1.資料列組成表,包括在資料庫中實實在在的表,也可以是查詢出來的資料記錄組成的『表』,這一般在子查詢,巢狀查詢中用得比較多。所以要在頭腦中形成乙個概念,一切都可以from。

[color=green]select count(*) from auctions a where sum(end_price) > 30000 group by category_id;[/color]哈哈

怎麼做呢?這樣做:

select a.category_id ,sum(a.end_price) price from auctions a group by a.category_id;
這個查出的結果作為乙個臨時的表,然後再來操作這個臨時表,那麼就應該是下面這個sql了:

select count(*) from 

( select a.category_id ,sum(a.end_price) as price from auctions a group by a.category_id

)where price > 300000

所以通過這個例子,應該可以很好地說明了1這個觀點了。

2.連線(join)很強大,隨你所想。 join on

3.分組很強大,想怎麼分就怎麼分。group by的時候,只能select 這個組和count還有sum之類的,但是不要忘記了你可以group by 多個列,這樣的話,就能select多個列出來了。

一般是這樣做:

select a.special_topic_id,count(*), sum(a.end_price * (1+a.ac_buycharge/100)) from auctions a 

where a.ac_onsale=3

group by a.special_topic_id,order by a.special_topic_id;

這樣只能顯示專場id,現可以連線一下專場表(special_topics),然後group by 一下:

select a.special_topic_id,st.cn_n,count(*), sum(a.end_price * (1+a.ac_buycharge/100)) from auctions a 

join special_topics st on st.id=a.special_topic_id

where and a.ac_onsale=3

group by a.special_topic_id,st.cn_n order by a.special_topic_id;

另外乙個例子[url]

總結:一切都是資料,利用連線,子查詢,分組等對資料想怎麼就怎麼玩,感覺打通了任督二脈,很舒暢。

HTML,原來是它們

在學習完牛腩新聞發布系統之後,才發現自己每天瀏覽的網頁是怎麼來的。原來,看起來很高大上的網頁自己也可以做得有模有樣。接下來的學習,應該就是具體知識細節的學習了。html的知識很簡單,也很基礎。html,超文字標記語言,標準通用標記語言下的乙個應用。web網頁也是一種文件,html就是用於編寫這種文件...

for迴圈原來是這樣

for迴圈可以說是程式中最靈活,最常用,最重要的乙個迴圈用法,大家經常用到,但是你真正理解for迴圈的執行原理嗎?舉個例子 for i 0 i 8 i 對於這個語句執行結束的時候 i 是多少?經常用,卻沒怎麼注意,執行結束的時候 i 是8 下面說一下for迴圈語句的執行過程 for 表示式1 表示式...

大學原來是這麼美好

人的一生會失去很多東西,有的追逐一生也得不到,有的短暫的擁有卻最終失去!我們一生都在為這些得到與得不到而苦腦 徘徊。我的大學時光也就這樣在揮揮噁噁的荒度了!記得大二時曾看過一部 大學我被你上了 記得當時在圖書館偶然看到這本書的時候,還以為是講一段美妙的大學愛情故事呢,等近不急待的看完了整部 才發現原...