2013年(350)
分类: Mysql/postgreSQL
2013-04-25 10:31:36
P先生、Q先生都具有足够的推理能力。这天,他们正在接受推理面试。
他们知道桌子的抽屉里有如下16张扑克牌:
红桃 A、Q、4
黑桃 J、8、4、2、7、3
草花 K、Q、5、4、6
方块 A、5
约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉P先生,把这张牌
的花色告诉Q先生。
这时,约翰教授问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?
P先生:“我不知道这张牌。”
Q先生:“我知道你不知道这张牌。”
P先生:“现在我知道这张牌了。”
Q先生:“我也知道了。”
请问:这张牌是什么牌?
使用如下:
SQL> select * from jss_tmp5;
TP VL
---------- ----------
红桃 A
红桃 Q
红桃 4
黑桃 J
黑桃 8
黑桃 4
黑桃 2
黑桃 7
黑桃 3
草花 K
草花 Q
草花 5
草花 4
草花 6
方块 A
方块 5
16 rows selected
SQL>
SQL> select tp, vl
2 from (select d.*, count(tp) over(partition by tp) ect
3 from (select c.tp, vl, count(vl) over(partition by vl) ct
4 from (select b.*, min(ct) over(partition by tp) mn
5 from (select a.*, count(vl) over(partition by vl) ct
6 from jss_tmp5 a) b) c
7 where c.mn > 1) d
8 where d.ct = 1)
9 where ect = 1
10 ;
TP VL
---------- ----------
方块 5