1. 如何進行資料庫分組統計
s.Open "select 材料入庫.材料編號,sum(材料入庫.數量) as 材料入庫, sum(材料出庫.數量) as 材料使用,sum(材料入庫.數量 - 材料出庫.數量) as 材料剩餘 from 材料入庫,材料出庫 group by 材料入庫.材料編號", conn, adOpenDynamic, adLockOptimistic
2. 資料庫中如何分類、分組並總計sql數據
通常,我們確實需要對所有數據進行排序。SQL的ORDER BY子句將數據按字母或數字順序進行排列。因此,同類數據明顯分類到各個組中。然而,這些組只是分類的結果,它們並不是真正的組。ORDER BY顯示每一個記錄,而一個組可能代表多個記錄。 2、減少組中的相似數據 分類與分組的最大不同在於:分類數據顯示(任何限定標准內的)所有記錄,而分組數據不顯示這些記錄。GROUP BY子句減少一個記錄中的相似數據。例如,GROUP BY能夠從重復那些值的源文件中返回一個唯一的郵政編碼列表: SELECTZIP FROMCustomers GROUPBYZIP 僅包括那些在GROUP BY和SELECT列列表中字義組的列。換句話說,SELECT列表必須與GROUP列表相匹配。只有一種情況例外:SELECT列表能夠包含聚合函數。(而GROUP BY不支持聚合函數。) 記住,GROUP BY不會對作為結果產生的組分類。要對組按字母或數字順序排序,增加一個ORDER BY子句(#1)。另外,在GROUP BY子句中您不能引用一個有別名的域。組列必須在根本數據中,但它們不必出現在結果中。 3、分組前限定數據 您可以增加一個WHERE子句限定由GROUP BY分組的數據。例如,下面的語句僅返回肯塔基地區顧客的郵政編碼列表。 SELECTZIP FROMCustomers WHEREState='KY' GROUPBYZIP 在GROUP BY子句求數據的值之前,WHERE對數據進行過濾,記住這一點很重要。
3. sql中根據表中一個欄位分組分別統計每個分組的記錄數
分組統計可以參考以下操作:
當數組重復的時候分組才有意義,因為一個人也可以分為一組,只是沒有意義而已,分組採用GROUP BY語句完成,語法如下:
4. sql中根據表中一個欄位分組如何分別統計每個分組的記錄數
分組統計可以參考以下操作:
當數組重復的時候分組才有意義,因為一個人也可以分為一組,只是沒有意義而已,分組採用GROUP BY語句完成,語法如下:
5. sql語句實現分組統計
方法和詳細的操作步驟如下:
1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。
6. Oracle資料庫按時間進行分組統計數據的方法
Oracle按不同時間分組統計的sql
如下表table1:
日期(exportDate)
數量(amount)
--------------
-----------
14-2月
-08
20
10-3月
-08
2
14-4月
-08
6
14-6月
-08
75
24-10月-09
23
14-11月-09
45
04-8月
-10
5
04-9月
-10
44
04-10月-10
88
注意:為了顯示更直觀,如下查詢已皆按相應分組排序
1.按年份分組
select
to_char(exportDate,'yyyy'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy');
年份
數量
-----------------------------
2009
68
2010
137
2008
103
2.按月份分組
select
to_char(exportDate,'yyyy-mm'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-mm')
order
by
to_char(exportDate,'yyyy-mm');
月份
數量
-----------------------------
2008-02
20
2008-03
2
2008-04
6
2008-06
75
2009-10
23
2009-11
45
2010-08
5
2010-09
44
2010-10
88
3.按季度分組
select
to_char(exportDate,'yyyy-Q'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-Q')
order
by
to_char(exportDate,'yyyy-Q');
季度
數量
------------------------------
2008-1
22
2008-2
81
2009-4
68
2010-3
49
2010-4
88
4.按周分組
select
to_char(exportDate,'yyyy-IW'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-IW')
order
by
to_char(exportDate,'yyyy-IW');
周
數量
------------------------------
2008-07
20
2008-11
2
2008-16
6
2008-24
75
2009-43
23
2009-46
45
2010-31
5
2010-35
44
2010-40
88
PS:Oracle按時間段分組統計
想要按時間段分組查詢,首先要了解level,connect
by,oracle時間的加減.
關於level這里不多說,我只寫出一個查詢語句:
----level
是一個偽例
select
level
from
al
connect
by
level
<=10
---結果:
1
2
3
4
5
6
7
8
9
10
oracle時間的加減看看試一下以下sql語句就會知道:
select
sysdate
-1
from
al
----結果減一天,也就24小時
select
sysdate-(1/2)
from
al
-----結果減去半天,也就12小時
select
sysdate-(1/24)
from
al
-----結果減去1
小時
select
sysdate-((1/24)/12)
from
al
----結果減去5分鍾
select
sydate-(level-1)
from
al
connect
by
level<=10
---結果是10間隔1天的時間
下面是本次例子:
select
dt,
count(satisfy_degree)
as
num
from
T_DEMO
i
,
(select
sysdate
-
(level-1)
*
2
dt
from
al
connect
by
level
<=
10)
d
where
i.satisfy_degree='satisfy_1'
and
i.insert_time<dt
and
i.insert_time>
d.dt-2
group
by
d.dt
例子中的sysdate
-
(level-1)
*
2得到的是一個間隔是2天的時間
group
by
d.dt
也就是兩天的時間間隔分組查詢
自己實現例子:
create
table
A_HY_LOCATE1
(
MOBILE_NO
VARCHAR2(32),
LOCATE_TYPE
NUMBER(4),
AREA_NO
VARCHAR2(32),
CREATED_TIME
DATE,
AREA_NAME
VARCHAR2(512),
);
select
(sysdate-13)-(level-1)/4
from
al
connect
by
level<=34
--從第一條時間記錄開始(sysdate-13)為表中的最早的日期,「34」出現的分組數(一天按每六個小時分組
就應該為4)
一下是按照每6個小時分組
select
mobile_no,area_name,max(created_time
),dt,
count(*)
as
num
from
a_hy_locate1
i
,
(select
(sysdate-13)-(level-1)/4
dt
from
al
connect
by
level
<=
34)
d
where
i.locate_type
=
1
and
i.created_time<dt
and
i.created_time>
d.dt-1/4
group
by
mobile_no,area_name,d.dt
另外一個方法:
--按六小時分組
select
trunc(to_number(to_char(created_time,
'hh24'))
/
6),count(*)
from
t_test
where
created_time
>
trunc(sysdate
-
40)
group
by
trunc(to_number(to_char(created_time,
'hh24'))
/
6)
--按12小時分組
select
trunc(to_number(to_char(created_time,
'hh24'))
/
6),count(*)
from
t_test
where
created_time
>
trunc(sysdate
-
40)
group
by
trunc(to_number(to_char(created_time,
'hh24'))
/
6)
7. sql分組統計
方法和詳細的操作步驟如下:
1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。
8. mysql 分組統計
SELECT (
SELECT s1.`id`
FROM `user` AS s1
WHERE s1.val=MAX(s.`val`)
)
AS id , s.`name` , MAX(s.`val`)
AS maxval
FROM `user` AS s
GROUP BY s.`name` ORDER BY s.val DESC
9. Oracle 資料庫的分組統計問題
select 負責人,sum(a),sum(b),sum(c),sum(d),sum(a)+sum(b)+sum(c)+sum(d) from 表 group by 負責人
如果不是求和,可以計數sum換為count ,或用max或用min做等級最大最小
10. mysql 分組之後如何統計記錄條數, gourp by 之後的 count
需要准備的工具:電腦,sql資料庫。
1、首先新建一個test表,有id,name,second三個欄位,其中name欄位有重復數據。