oracle ¿ÉÓÐʲô·½·¨ ͳ¼ÆÃ¿ÔÂÀÛ»ý¹ºÂòÈËÊý?
oracle ¿ÉÓÐʲô·½·¨ ͳ¼ÆÃ¿ÔÂÀÛ»ý¹ºÂòÈËÊý
±ÈÈç˵ÓиöÃŵê 2008Ä깺ÂòÉÌÆ·µÄÈËÊý
±í:t_buy_log ×Ö¶Î f_username Óû§Ãû³Æ;¹ºÂòʱ¼äf_buytime
1 Èç¹ûÊÇͳ¼ÆÃ¿Ô¹ºÂòÈËÊý
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
group by to_char(f_buytime,'yyymm')
order by to_char(f_buytime,'yyymm') asc
½á¹û:
1ÔÂ 100ÈË
2ÔÂ 150ÈË
3ÔÂ 50ÈË
2 Èç¹ûͳ¼ÆÃ¿ÔÂÀÛ»ý¹ºÂòÈËÊý ?
1ÔÂ 100ÈË
2Ô ÊÇ1ÔºÍ2ÔµĹºÂòÈËÊý ¿Í»§ÓÐÖØ¸´ ÖµÔÚ100-250Ö®¼ä
3Ô ÊÇ1-3ÔµĹºÂòÈËÊý
Õâ¸ö¸ÃÔõÃ´Ð´ÄØ?
Ó÷ÖÎöº¯ÊýµÄSUM ºÃÏñ²»ÐÐ
1-1
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
WHERE to_char(f_buytime,'yyymm')='200901'
1-2
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
WHERE to_char(f_buytime,'yyymm') between '200901' and '200902'
1-3
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
WHERE to_char(f_buytime,'yyymm') between '200901' and '200903'
³ýÁËCOUNT(DISTINCT CASE WHEN to_char(f_buytime,'yyymm')between '200901' and '200903' THEN f_username END)
UNION
Ïà¹ØÎÊ´ð£º
±¾À´ÒªÐ´¸öupdateÓï¾ä
update table_a A
set A.flag=1
where A.id in (select B.id from table_b B)
½á¹ûÎóд³É
update table_a A
set A.flag=1
where ......
´ó¼ÒºÃ,ÎÒÏÖÔÚ°Ñoracle·þÎñÆ÷ÉÏÃæµÄÔʼÎļþ,ÏÂÔØµ½±¾»úÁË.ÎÒÏëÔÚ±¾»ú·ÃÎÊÊý¾Ý¿âÔõôÉèÖð¡.ÊDz»ÊÇÀàËÆ¿ÉÒÔ½¨Á¢Ò»¸öʲôÐéÄâ·þÎñÆ÷À´ÊµÏÖ.Çë´ó¼Ò³ö³öÖ÷Òâ
ÒýÓÃ
´ó¼ÒºÃ,ÎÒÏÖÔÚ°Ñoracle·þÎñÆ÷ÉÏÃæ ......
ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£
ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î
date(Ö÷) outid(Ö÷) inid(Ö÷) num amt
2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......
´ó¼ÒÓöµ½ORACLE·ÖÒ³¶¼ÊÇÔõô´¦ÀíµÄ£¿
ÊÇÓÃSQLÓï¾ä·ÖÒ³£¿»¹ÊÇÓÿɹö¶¯µÄ½á¹û¼¯·ÖÒ³£¿
Ï£Íû´ó¼ÒÄܰѴúÂëÌù³öÀ´¡£
×îºó´ó¼Ò¸Ð¾õÄÄÖÖЧÂʸߣ¿ÎªÊ²Ã´£¿
ÒªÊÇÓÃhibernateµÄ»°£¬¾Í²»ÓùÜÊDz»ÊÇoracleÁË¡£
ÎÒÖ»ÖªµÀorac ......