我有一个数据库表,其中有三列对此问题至关重要:
我想从此表中创建一个视图,以便具有相同分组ID的重叠日期间隔被展平.
不重叠的日期间隔不得展平.
例:
Group ID Start End
1 2016-01-01 2017-12-31
1 2016-06-01 2020-01-01
1 2022-08-31 2030-12-31
2 2010-03-01 2017-01-01
2 2012-01-01 2013-12-31
3 2001-01-01 9999-13-31
Run Code Online (Sandbox Code Playgroud)
... ...变
Group ID Start End
1 2016-01-01 2020-01-01
1 2022-08-31 2030-12-31
2 2010-03-01 2017-01-01
3 2001-01-01 9999-12-31
Run Code Online (Sandbox Code Playgroud)
重叠的间隔可以以任何方式这样做,完全被其他间隔包围,或者它们可以交错,或者它们甚至可以具有相同的开始和/或结束日期.
有几个类似的标识.通常(> 95%)只有一行具有特定的组ID.大约有一千个ID出现在两行中; 少数几个存在于三行中的ID; 没有四行或更多行.
但我需要做好准备,可能会显示存在于四行或更多行中的组ID.
如何编写一个SQL语句来创建一个显示以这种方式展平的表的视图?
请注意,每一行都有一个唯一的ID.这不需要以任何方式保留,但是如果它在编写SQL时有帮助,我告诉你.
我有一个 Spring Boot Web 应用程序,其中大多数端点都需要身份验证。然而,少数映射应允许匿名访问;它们是一般规则的例外。
我无法让它适用于 POST 调用,他们总是收到 403。
安全配置...
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().regexMatchers("/", "/posthello").anonymous()
.and()
.authorizeRequests().anyRequest().authenticated();
}
}
Run Code Online (Sandbox Code Playgroud)
控制器...
@RestController
public class HelloController {
// This returns HTTP 200 and body on anonymous calls
@GetMapping("/")
public String helloWorld() {
return "Hello World!";
}
// This demands authentication, as expected
@GetMapping("/gethello")
public String getHelloWorld(String body) {
return "You got: Hello, World!";
}
// This always returns HTTP …Run Code Online (Sandbox Code Playgroud)