mysql - 每列的 SQL 唯一值

标签 mysql sql

所以我试图从每一列中获取唯一的值。到目前为止我已经尝试过。

日期:周一、周二、周三、周四、周五

时间:上午 8 点至 10 点、下午 10 点至 12 点、下午 1 点至 3 点、下午 3 点至 5 点、下午 5 点至 7 点

SELECT DISTINCT Day, Time FROM table GROUP BY Day, Time;

示例:

Monday    8-10am
Monday    3-5pm
Monday    5-7pm
Tuesday   10-12pm
Tuesday   5-7pm
Wednesday 3-5pm
Thursday  10-12pm
Thursday   1-3pm
Friday    8-10am
Friday    1-3pm

这不会为我提供每列的唯一值,而是为一天中的每个时间提供唯一值。

SELECT
(SELECT group_concat(DISTINCT Day) FROM workingTimeDate) as Day,
(SELECT group_concat(DISTINCT Time) FROM workingTimeDate) as Time
FROM workingTimeDate;

这将给出:

Monday,Tuesday,Wednesday,Thursday,Friday   8-10am,10-12pm,1-3pm,3-5pm,5-7pm

这会将值分组为两列,但我希望它们位于单独的列中。

我想要的是

Day        Time
Monday     8-10am
Tuesday    10-12pm
Wednesday  1-3pm
Thursday   3-5pm
Friday     5-7pm

最佳答案

你可以这样做:

select distinct day, cast(NULL as time) from t
union all
select distinct cast(NULL as date), time from t;

关于mysql - 每列的 SQL 唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44098165/

相关文章:

php - 如何在 mysql 中联合随机选择的行?

php - MySQL 和 PHP 数据库?

mysql - 如何为JIRA和MySQL创建docker-compose

mysql - SQL。从其他列的选择中设置列值

MYSQL 优化器只是忽略我在复合索引中用于 ORDER BY 的最后一列

mysql - 求和到某个点 - MySql

mysql - 过滤表1的列并通过与另一个字段匹配从表2中获取结果

sql - 如何按时间段(例如小时)选择每个用户的数量?

SQL 字符串比较、大于和小于运算符

mysql - 使用另一个表 MySQL 中的相应值更新多行