私信  •  关注

Barbaros Özhan

Barbaros Özhan 最近创建的主题
Barbaros Özhan 最近回复了
3 年前
回复了 Barbaros Özhan 创建的主题 » 在MySql中将SELECT列转换为Date

可以强制转换一列,但不能转换整个查询。所以考虑使用

SELECT email, 
       (SELECT CAST(tag AS DATE) FROM user_tags WHERE userid=u.id LIMIT 1) AS date
  FROM users AS u

5 年前
回复了 Barbaros Özhan 创建的主题 » 在mysql中获取当月部门总数和员工总数

SELECT COUNT(DISTINCT Department_id), COUNT(DISTINCT employee_id)
  FROM department  
 WHERE date_time >= NOW() - INTERVAL 1 MONTH
   AND status = '1';

两者都算清楚。

更新: 本月 ,然后也是

AND date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01')

可能会像在原始查询中一样添加到此查询。

5 年前
回复了 Barbaros Özhan 创建的主题 » 列值为distinct的MySQL查询

可以将嵌套子查询与 max() 聚合

select t1.*
  from tab t1
  join (select emote_id, max(count) as count
          from tab
         group by emote_id ) t2
    on t1.emote_id = t2.emote_id
   and t1.count = t2.count

对于db版本8+,可以使用窗口分析函数,如 dense_rank() :

select room_id, emote_id, count, since
  from
  (
   select t.*, dense_rank() over (partition by emote_id order by count desc) as dr
     from tab t
  ) tt
  where tt.dr = 1  

Demo

所有匹配最大值 count 通过使用返回 密级() 如果是平手(价值相等 计数 对于任何 emote_id ). 如果解析函数是 row_number() ,则即使发生平局,也只能返回一行。

6 年前
回复了 Barbaros Özhan 创建的主题 » Tabbe 1中的所有数据和表2中的RePayValues由ID在表2MySQL中存在

你可以用 coalesce() 功能 left join

create table t3 as
select t1.ID, coalesce(t2.value,t1.value) as value
  from t1
  left join t2 on t1.ID=t2.ID

Demo

6 年前
回复了 Barbaros Özhan 创建的主题 » 多列MySQL内部联接

只考虑按电子邮件列之间的相等性筛选此select语句

SELECT t1.*, t2.* 
  FROM Person t1 
 INNER JOIN Person t2
 WHERE t1.Email=t2.Email 
 ORDER BY t1.Id, t2.Id;

退货 (1,1), (1,3), (3,1), (3,3) 对于邮件,分别为T1.ID和T2.ID值 anne@example.com ,而且只有 (2,2) 对于 cat@example.com 。如果你考虑另一个过滤器 AND t1.Id > t2.Id ,

SELECT t1.*, t2.* 
  FROM Person t1 
 INNER JOIN Person t2
 WHERE t1.Email=t2.Email 
   AND t1.id > t2.id
 ORDER BY t1.Id, t2.Id;

那你就只有一个元组了 (3,1) 自从 t1.id > t2.id 只满足ID元组的这种情况。如果你转换 SELECT t1.*, t2.* DELETE t1 (当然,删除 ORDER BY 第二部分),显然你会删除 id = 3 以及具有ID值的左行 1 2 ,如果您替换 选择T1.*和T2.* 具有 DELETE t2 ,那么您将拥有具有ID值的行 3 .

Demo